How would you design a ticket booking system like Ticketmaster?
1.2k views
59 of 106
1
The problem
Question presented to candidate:
"Design a ticketing system like Ticketmaster. Most of the time it sells tickets for small shows, but a few times a year a huge artist goes on sale and millions of fans try to buy 70,000 stadium seats in the same few minutes. Each fan picks specific seats, has a few minutes to pay, and no seat can ever be sold twice."
What a strong answer should cover:
Why this is harder than hotels: specific seats (not counters), extreme contention at one instant, bots, and a burst of traffic orders of magnitude above normal
A virtual waiting room that admits fans at the rate the booking path can handle, with tokens, fairness and bot checks, while static pages come from a CDN
Seat holds with a TTL: AVAILABLE -> HELD(hold_id, expires_at) -> SOLD, written with a conditional update; expired holds return to sale; payment confirmation must match the hold id
How to choose the hold length, and server-side seat assignment ("best available") to remove conflicts for the hottest seats
Data model and partitioning (by event, then section), the read-heavy seat map, and the payment step done idempotently
Real numbers: Ticketmaster reported 3.5 billion system requests during the Taylor Swift Eras Tour presale in November 2022
Clarifying questions expected:
Do fans choose seats on a map, or can we assign "best available"? General admission too?
How long may a fan hold seats while paying? Ticket limits per fan?
Is a pre-registration step (verified fans, codes) part of the product?
Code / implementation expected: Optional โ the example compares a free-for-all on the best seats with a waiting room plus expiring holds, and shows how hold length changes the sell-out time.
booking
concurrency
2
Try it yourself
Sketch your approach before you read the solution. That is what the interview tests.
Stuck? Get a hint.
A short nudge toward the approach. It will not give the answer away.
3
Solution
Target Audience: Backend engineers preparing for the "design Ticketmaster" round, which is really a question about contention, holds and admission control.
Difficulty: Hard
Verified with: Node 22.22 and Python 3.12 (identical output). The Eras Tour figures are from Ticketmaster's statement of November 2022 as reported by CBS News and Cox Media Group stations.
How to read this doc: Every idea is explained in plain language first, then tagged with ๐ Interview term: so you also learn the words an interviewer expects. Every number from the simulation comes from running the example; the Verified section quotes its full output. Counted inventory (hotel rooms) is covered in How would you design a hotel reservation system?; this page is about specific seats under extreme contention.
1. Why T
The solution is hidden so you can try first
8 min read ยท 16 sections
4
Read the code
Hot on-sale: a free-for-all on the best seats vs a waiting room with server-assigned seat holds that expire