System design · HLD
Ticketmaster
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