System Design: Online ticketing platform (Ticketmaster-like)
Design a system that sells tickets for events (concerts/sports) with seat selection.
Core user flows
-
Browse/search events.
-
View event details and seat map.
-
Select 1..k seats.
-
Temporarily
hold/reserve
selected seats.
-
Checkout and pay.
-
Receive confirmation and ticket(s) (e.g., QR code).
Requirements
Functional
-
Support both
assigned seating
(seat map) and optionally
general admission
(quantity).
-
Prevent double-selling the same seat.
-
Seat holds expire (e.g., 5–10 minutes).
-
Users can cancel; system releases seats.
-
Integrate with external payment provider.
Non-functional
-
Very high burst traffic at on-sale time (hundreds of thousands to millions of users).
-
Low latency for seat map/availability.
-
Strong correctness: no overselling.
-
Fairness controls (queues/waiting room), anti-bot protections.
-
Observability and auditability (who held/bought what).
Deliverables
Explain:
-
APIs
-
Data model
-
High-level architecture
-
Seat locking/holding strategy and consistency
-
Scaling, caching, and failure handling
-
Anti-bot and fairness mechanisms