HLD-312·Transactions & Locking
Hard · 1,500 ptsGeo-Indexed Vacation Rental Search & Date-Range Lock Engine
Design Airbnb’s flagship architecture combining S2/Geohash date-filtered property search with strict non-overlapping night-range reservation locking.
Max p99
≤ 120 ms
Availability
≥ 99.4%
Budget
≤ $8,000
Functional Requirements
- FR-1GET /listings/search?cell={s2_cell}&checkin=... — Filters available properties in geo cell and date range.
- FR-2POST /listings/{listing_id}/book — Atomically locks `(listing_id, night_date)` rows; zero double-bookings.
- FR-3DELETE /listings/search/{listing_id} — Releases canceled or expired leases/holds atomically and immediately refreshes cached availability.
- FR-4Must never double-book overlapping stays or lose confirmed bookings during primary DB crash.
Workload Profile
Baseline Browsing38,000 Search Read RPS / 3,200 Booking Write RPS
Summer Holiday Drop95,000 Search Read RPS / 18,000 Concurrent Book RPS
Active Working Set28 GB active 365-day listing availability calendars
Consistency GateStrict serializable night-date reservation + RPO = 0 failover
Consistency Model
Strict serializable `(listing_id, date)` locking + synchronous/quorum replication; zero double-booking.
Solutions Locked
Sign in and either achieve AC or complete 3 official submissions on this question to inspect community diagrams and writeups.
Loading solutions...
Submission History (0)Select to replay
No submissions yet
Click Submit in the top bar to evaluate against all 7 judge cases and save each run here.
Design Write-up
0 boxes · 0 edges
0 words