System design interview questionHardE-Commerce / Inventory

Design a Ticket Booking System like Ticketmaster

Design Ticketmaster-style booking: browse events, hold seats, and confirm purchases without overselling.

Interview scope

Client → Gateway/LB → App → Cache (hot inventory) + DB (bookings). Optional Queue for receipt/email. No Client → DB.

Functional requirements

  • List events and available inventory.
  • Hold/reserve seats for a short time.
  • Confirm payment and finalize the booking.

Scale and quality goals

  • Hot events create huge read + reserve spikes.
  • Inventory must be consistent — no double-sell of the same seat.
  • Confirmation side effects (email/receipt) can be async.

Capacity assumption

Design for this scale

Assume ~10M users browsing a drop; ~100k tickets sell in a short window — cache inventory views, queue confirmations.

Practice more than a diagram

Place components on the Froquiz canvas, connect the data flow, and see which decisions the scenario-specific review finds missing. The full exercise and review unlock with Premium.

Explore Premium