SevyDevy

Design BookMyShow (low-level design)

PremiumLow-level designMedium

  • Object oriented design
  • Seat hold expiry
  • Concurrency control

Quick answer

This low-level design interview question asks you to design BookMyShow (low-level design). Aim for a design that is modelled as clear classes, interfaces and relationships that can handle new requirements without a rewrite. Interviewers want to see how you name responsibilities, keep classes small and reason about change.

The problem

Design the classes and interfaces for a movie ticket booking app like BookMyShow. Users pick a city, movie, theatre and show, hold seats on a seat map for 10 minutes, pay and get a booking. The hard part is that thousands of users click the same seats at once, and a seat must never be sold twice.

What must the system do?

  • Seat hold: A user picks 1 to 10 free seats for a show; all chosen seats are held together for 10 minutes, or none are.
  • Booking after payment: A booking is confirmed only when payment succeeds while the hold is still valid; then the seats become booked. A payment that succeeds after the hold expired is refunded and no booking is made.
5 more requirementsUnlock to see all

How well must it do it?

  • No double booking: Two users must never both get the same seat, even when 5,000 users open the same show at once.
  • Reliable expiry: A held seat must come back even if the user closes the app or the payment never answers.
2 more requirementsUnlock to see all

What scale should you design for?

Use these numbers in your estimates.

The scale numbers unlock with this questionUnlock

Key concepts

  • Object oriented design
  • Seat hold expiry
  • Concurrency control
  • State pattern
  • Strategy pattern
  • Optimistic locking

How you’ll practise

6 short steps · save and come back any time
  1. Requirements
  2. Core objects
  3. Class relationships
  4. Key flows
  5. Extensibility
  6. Wrap-up

Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.

What do interviewers look for?

In any low-level design round.

  • Lists the use cases before writing classes
  • Gives each class one clear responsibility
  • Uses interfaces where behaviour is likely to change
  • Applies a design pattern only when it solves a real problem
  • Handles edge cases and invalid states explicitly
  • Walks through one use case end to end with the model

Questions people ask about this interview question

Which design type is this question?
It is a low-level design question. You design BookMyShow (low-level design) and explain your choices the way you would in an interview.
Is this question asked at entry level?
It is marked Medium. Entry-level engineers can practise it, but it expects you to reason about requirements and trade-offs, not only list components.
What should I cover first?
Start with the use cases and the core entities, then the responsibilities of each one. Agree on scope with the interviewer before you design anything.
Can I practise it for free?
It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.

Related questions

Updated · Written by the SevyDevy team

Premium questionSign up free, then unlock it