System Design Notes
Don’t forget to get your copy of Designing Data Intensive Applications the single most important book to read for system design interview prep!

Airbnb Design

Airbnb or similar online lodging marketplace allows users to search for homes or rooms available at a particular location and book it. Services like Airbnb and booking.com allow a smooth and customizable booking experience for users so they can easily plan their entire trip ahead of time.

Let's learn how to design an online lodging marketplace that allows users to search and compare accommodations based on reviews, prices etc., and make bookings.

Requirements Of The System

Functional Requirements

  • The users can register to create an account and login to their account.
  • Users can search for rooms or homes in their proximity.
  • Users can view prices, photos, ratings and other key features for the rooms.
  • Users can make bookings backed by a fast and secure payment service.
  • Users can cancel a booked room.
  • Host can add and update rooms.
  • Host can keep track of bookings.

Non Functional Requirements

  • Low latency
  • High availability
  • High consistency (once a room is booked, it should not appear available to any other user)
  • The system should scale to around 150 million users and store data for around 500k hotels (10 million rooms) in the database.

Airbnb System Design

There are two UIs or application designs for the system. One is the Airbnb application for use by the host where they can add and update rooms and keep track of bookings. The other application for the same system is for the guests so they can search and book rooms.

Airbnb System Diagram

Before diving into the details of the components involved and how each of them functions, let's take a look at the design diagram. The diagram features both ends of the system, the one available to the host and the one available to the guests.

Host End

Some features of the lodging system are present at the host app. The host microservice functioning at this end of the UI will manage the addition, deletion and modification to the rooms of a hotel or a home.


Click here to continue reading this lesson on Medium.