Hard

Design a Movie Ticket Seat Booking System Object-Oriented Design Interview

Design a multi-theater ticket booking system where users search movies/showtimes, pick specific seats from a shared seat map, and complete a reservation with correctness under concurrent booking attempts.

1. Problem Statement

Design a movie ticket booking system: users search movies and browse theaters/showtimes, pick specific seats from a shared seat map for a showtime, and book one or more seats in a single reservation. If two users attempt to book the same seat at the same time, exactly one must succeed. Users can also cancel a reservation.

2. Live Coding Format

Work in the provided coding workspace while explaining your decisions to the live interviewer. Validation may use inline tests, examples, comments, or a verbal walkthrough.

3. Key Focus Areas

  • 1
    Theater/Screen/Showtime/Seat/Reservation entity modeling
  • 2
    Concurrency-safe seat booking (exactly one winner)
  • 3
    Seat-hold vs. confirmed-booking state
  • 4
    Cancellation and seat release

4. What Strong Candidates Should Demonstrate

  • Model theaters/screens/showtimes/seats/reservations with clear ownership boundaries.
  • Guarantee exactly-one-winner semantics for contested seat bookings.
  • Separate the read-heavy search path from the write-heavy, correctness-critical booking path.
  • Handle cancellation cleanly by releasing held/booked seats back to availability.

Want interactive feedback?

Practice this problem in the live coding workspace while the interviewer probes your clarification, implementation, trade-offs, and validation.

Start Interview

Core Concepts

Object-Oriented DesignConcurrencyReservation Systems