Skip to content

Airbnb / Booking — Notes#

Functional#

  • Search by location, date, filters.
  • View listing detail, availability calendar.
  • Quote → reserve → pay → confirm.
  • Host calendar, smart pricing.
  • Messaging, reviews, support.

Non-functional#

  • Strong consistency: no double-booking.
  • p99 search < 500 ms; quote < 300 ms.
  • 99.99% availability.

Capacity#

  • Listings: 7M+ active (Airbnb), Booking 28M+.
  • Searches: many millions/day, bursty at peak travel.

Schema#

  • listings(id, host_id, geo, amenities, price)
  • calendar(listing_id, date, state, version)
  • bookings(id, listing_id, guest_id, dates[], total, status, idempotency_key)
  • reviews(id, listing_id, ratings[], text)

Trade-offs#

  • Date-range locking: lock the whole window, not single date — careful with concurrency.
  • Search vs canonical stores: ES index for search, SQL for truth; sync via CDC.
  • Pricing rules are a complex DSL; isolate as a service.

Refs#

  • Airbnb engineering blog (search ranking, RECs, MySQL sharding via Vitess).
  • Booking.com engineering posts on A/B & search.
  • ByteByteGo "Design Airbnb".