System Design Interview
Build a ticketing app like Ticketmaster
Pretend for a second that you’re my tech lead. We’re working together on a project to design a ticketing application like Ticketmaster from scratch, and you’re leading its design. How would you design this application and communicate its design to me?
To start, let’s skip search, user signup, etc. We have a logged in user, who is on a page for an event. The user should be shown ticket options, be able to select one or more tickets, and make a purchase. For example, an event page could look like this:
Dua Lipa Concert (2020-08-17 10:00 AM PST)
---
General Admission Ticket — 83 available
Premium Booth Ticket — 11 available
Or this:
Phantom of the Opera (2020-07-28 7:00 PM PST)
---
Section 1A - Standard Ticket — 25 available
Section 2A - Standard Ticket — Sold out
Talk through or write down how you think the application flow, data models, and APIs should look like.
What does the happy path look like?
What are some possible failure cases?
Can your design support both general admission (ie. a pool of identical tickets) and assigned seats (specific set of tickets where each is different)?