Design BookMyShow

Design a ticket booking system where users pick seats for a show and pay.

Movie and event ticketing · Hard

Functional requirements

  • Browse shows and seat maps
  • Hold seats for 10 minutes during checkout
  • Pay and confirm the booking

Scale & non-functional requirements

  • Popular releases cause huge traffic spikes
  • A seat must never be sold twice
  • Checkout stays responsive under load

Hints

  • How do you lock a seat without a global lock?
  • What happens when a hold expires?
  • How do you queue users during a spike?

More system design questions

Try AI Flowchart free →