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.

Continue to Dashboard

Core Concepts

Object-Oriented DesignConcurrencyReservation Systems

Continue preparing

Build a complete software engineer mock interview plan

Related Object-Oriented Design

Design a Car Rental System

Design a car rental domain model covering vehicle categories and vehicles, branches, customers and drivers, a rental date range, rate-based quotes, reservations, pickup rental agreements, and return inspection with extra charges — preventing overlapping rentals of the same vehicle.

Related Object-Oriented Design

Design a Cricket Information Platform

Design a cricket scoring domain model covering teams and players, a match, innings, overs and deliveries, batting and bowling scorecards, extras and wickets, striker rotation, over completion, and match results for a configurable limited-overs format.

Related Object-Oriented Design

Design a Group Expense-Splitting Ledger

Design a system where users form groups, log shared expenses using pluggable splitting strategies (equal/exact/percentage), maintain pairwise balances, and settle debts.

Related Object-Oriented Design

Design a Hotel Management System

Design a hotel domain model covering room types and rooms, guests, a half-open date-range value object, the reservation lifecycle, room assignment, check-in/out, and a charges folio, while preventing overlapping bookings on the same room.