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.
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.
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
- Requirements
- Core objects
- Class relationships
- Key flows
- Extensibility
- 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