Airbnb's system design

0/4
☰
Airbnb · system design

Airbnb is a marketplace where one home takes one guest per night: a search funnel ranks a hundred thousand homes in a blink, and a web of services books the dates and moves the money exactly once.

+ The whole system in one paragraph

Airbnb sells nights, and each night of each home can be sold only once. Search narrows up to ~100,000 open homes to one ranked page. A booking writes one reservation for its nights, and Payments charges the guest in steps that are safe to retry, so nobody is charged twice. Underneath, the original Rails app became services in tiers.

533M
nights (stays) + seats (experiences) booked, 2025[15]
$91.3B
booked by guests in 2025 (gross booking value)[15]
9M+
active listings at the end of 2025[15]

In this lesson

4 chapters · ~9 min · a quick check in each

Everything is on this page — just scroll down ↓

Chapter 1 of 4

The whole system

1
Requirements

What it must do — and how well

What Airbnb must do (yellow) and how well (blue). Five nines = payment records agree across Airbnb and its banks 99.999% of the time (2019).

ⓘ Details & sources

Yellow = what the system must do. Blue = how well it must do it.[13][11][7][2]

Find a few greathomes among ~100,000available in apopular place.One listing, oneguest, per set ofdates: never sell anight twice.Charge the guestonce; pay the hostafter check-in.Hosts change pricesand calendars allday: search mustkeep up.Payments: five nines(99.999%) ofconsistency.Search: scoremillions of homes asecond, fast.1,000+ engineersshipping withoutwaiting on eachother.Retries and doubleclicks never movemoney twice.
2
Architecture

The whole of Airbnb on one page

Every box is one part of Airbnb, every arrow a call or event. Follow a search, a booking or a cancellation through the services that own each step.

ⓘ Details & sources

Services in tiers, search as its own machine, payments apart — and SpinalTap turning every database change into an event. Click any piece; play a flow.[2][13][6][7][16][40][41][42]

Watch it happen:
Search — sharded scatter-gatherPayments11search2fan out234price4book4charge54binlog66index6charge, payout5payout5riskGuest appsearch, book, payHost appcalendar, payoutsAPI gateway+ Viaduct (GraphQL)Search rootfan out, re-rankLeaf shardsretrieve + rankPresentationcheckout pageAvailabilitythe calendarPricingderived dataReservationsone guest per dateHomes datalisting detailsSpinalTapDB changes → KafkaPaymentsOrpheus: never twiceProcessorsbanks + networksMessagingthreads, syncedTrust & riskscore each booking
clientload balancerservicedatabasequeueexternal dashed border = simplified model
123456
Step 1 of 6

Guests and hosts use the same front door: an API gateway, with Viaduct — a GraphQL layer — knowing which service owns each piece of data.

Curious? Go deeper+ 1 optional
3
Requirements

What it all runs on

The ground under every box: where services run, where data lives, and how services find and call each other. Dated facts from Airbnb's posts — older ones may have changed.

ⓘ Details & sources

Yellow = where it runs and ships. Blue = how the pieces find and call each other. Each note carries the year of its source.[36][37][7][6][1][5][38][9]

Almost all onlineservices run ascontainers onKubernetes:thousands of nodesin ~100 clusters, onAWS (2022).Data: MySQL behindpayments (2019);SpinalTap readsMySQL and DynamoDBlogs (2018); adistributed SQLdatabase spansKubernetes clusters(2025).10,000 deploys aweek (2018): aservice deploys inminutes, whereMonorail took hours.Services call eachother in Thrift overHTTP: one interfacefile per service,Java and Rubyclients generatedfrom it (2017).Services found eachother withSmartStack: a localHAProxy kept currentfrom ZooKeeper(2013).Apps ask Viaduct(GraphQL) for databy name; it knowswhich service ownsit (2020).Changes travel asevents on Kafka,published fromdatabase logs bySpinalTap (2018).
Quick check

In 2025 guests booked $91.3B across 533M nights and seats. Roughly how much is that per night or seat?

Pick one — or just keep scrolling, it's not graded.

Keep going — it's free

Create your free account to unlock the rest of Airbnb's system design, keep your progress and pick up right where you left off.

  1. 2Search, calendar & prices
  2. 3Booking & money
  3. 4Growth & migration
Questions & comments

Ask anything about this system, or share how you'd design it.

Log in to join the conversation