Skip to content

Ticketmaster / BookMyShow — Notes#

Functional#

  • Browse events, view seat map, hold, pay, get ticket.
  • Wait-list, refund, resale.
  • Anti-bot, fair queueing for hot drops.

Non-functional#

  • Strict no-double-booking.
  • Survive flash crowds (10–100× normal traffic) for marquee events.
  • p99 hold response < 1 s under load.

Capacity#

  • Big drop: 500k+ concurrent users in queue.
  • Seat catalog: 100k+ seats for a stadium.

Schema#

  • events(id, venue_id, time, status)
  • shows(id, event_id, hall, sale_start)
  • seats(show_id, seat_id, state, held_by, held_until, version)
  • bookings(id, user_id, show_id, seat_ids[], payment_id, status, idempotency_key)

Trade-offs#

  • Strong consistency on seats non-negotiable; pay the latency.
  • TTL holds prevent permanent leaks but require sweepers.
  • Virtual queue is mandatory for big drops or service melts down.
  • Resale complicates ticket identity → unique IDs, key rotation per transfer.

Refs#

  • Ticketmaster engineering "Verified Fan" posts.
  • BookMyShow architecture talks.
  • ByteByteGo "Design ticketing", Alex Xu Vol 2.