Design Ticketmaster
Overview -
Ticketmaster is an online platform that allows users to purchase tickets for concerts, sports events, theater and other live entertainment. Has ~100M DAU
Functional Requirements-
- User Should be able to book tickets
- View an event
- Search for events
Non-Functional Requirements-
- Strong consistency for booking tickets and high availability for search and viewing events / consistency >> availability (no double booking)
- read >> write
- scalability to handle surges from popular events
Out of Scope:
- GDPR compliance
- fault tolerance
- etc.
Core Entities- - Event - Venue - Performer - Ticket API- GET /event/:eventId -> Event and venue and performer and ticket[] GET /search?term={term}&location={lcoation}&type={type}&date={date} -> Partial<Event>[] POST /booking/reserve header: JWT | SessionToken body{ ticketId } PUT /booking/confirm header: JWT | SessionToken body{ ticketId paymentEtails(stripe) } High Level Design-