Design Flight Booking
HardSystem design · Reservations
Design a flight booking system: travellers search origin, destination and dates, compare fares, hold seats, pay and receive tickets. Inventory and prices live in airline systems (directly or via a distribution intermediary) that are slow, rate limited and metered per query. Scale: 10K searches/s with p99 under 3s. Cover search over connecting itineraries, fare caching and freshness, revalidation before payment, the hold, pay, ticket sequence, and reconciliation with airlines.
Requirements
- Search is served mostly from cached fares; booking must revalidate price and availability with the supplier
- Holds expire (airline ticketing time limit and card authorization window) and releasing them must be safe
- Order payment and ticketing so every failure has a clean undo, and make supplier calls idempotent
- Reconcile bookings with airline records and degrade gracefully when a supplier is down