Design Hotel Booking
HardSystem design · Reservations · Airbnb
Design a hotel booking system: guests search by location and dates, hold a room type for the stay, pay, and later modify or cancel. Scale: 1M properties, 5M room types, searches up to 12 to 18 months ahead, 10K searches/s and 100 booking attempts/s at peak. Cover availability modelled as a per-night calendar, a fast search index that can be slightly stale, atomic holds across a date range, intentional overbooking, cancellation policies, and sync with property systems.
Requirements
- A booking holds every night of a stay or none of them, with no deadlock between overlapping stays
- Search may be slightly stale but must not slow or weaken the booking path
- Support deliberate overbooking per property and date, with a path for relocating guests
- Hold expiry, payment timeouts, cancellation policies, and reconciliation with partner inventory