System design · HLD

Ticketmaster

Ticketmaster diagram 🖊️ Whiteboard diagram: open to zoom in →

Functional req

1.user should be able view events

2.user should be able to search for event

3.user should be able to book ticket

Non-functional req

1.for view/search events system should be highly available but prioritize consistency when booking a ticket

2.low latency (<500ms)

3.system should be scalable to handle 10M users

Note: read vs write ratio 100:1 , system is read heavy so high throughput

Core entities

1.user - who is viewing the events and booking ticket

2 events - store essential information of the event like - date , performer , description

3 venue - store the physical location where an event will happen , location , capacity of the venue , number of seaats

4performer - performer detail name , desc

5ticket - store the ticket information - like seats booked , pricing and status

6booking - store the ticket , for a user id list of ticketid booked , total pricing and all

Api

// user should be able to view events
GET /events/search?keyword={keyword}&startDate={start_date}&endDate={end_date}&pagesize={page_size}&pagenum={page_num}  -> Events[]
//view event
GET /events/:eventID -> Event & Venue & Performer & Ticket []
//book a ticket
POST /booking/:eventID -> bookingID
{
 "Tickets" : [] ,
  "paymentDetails" : ""
}

https://claude.ai/public/artifacts/bd0a462d-7aea-40a8-a2ae-bd59f2a715d6