Airbnb Reservation System Design (Mock Interview + No Double Booking)
Scenario
Guests search listings and book date ranges on one calendar per listing. The job is to never double-book overlapping nights while still feeling fast enough to complete checkout—holds expire, payments fail, and two people will absolutely click the same viral listing at once. Strong answers sound like inventory and transactions, not CRUD on rows.
Design the reservation subsystem for a short-term rental marketplace (Airbnb-style): guests choose dates; the system must never double-book the same listing for overlapping nights.
Constraints
Query availability for a listing and date range; create reservation (hold + confirm); cancel/modify per policy; support host approval flow if required
Strong correctness on the booking path; predictable latency; auditable state transitions
Many listings; spikes during launches and holidays; concurrent guests on viral listings