...

/

Getting Ready: Movie Ticket Booking System

Getting Ready: Movie Ticket Booking System

Understand the movie ticket booking system problem and learn the questions to simplify this problem.

Problem definition

The Movie Ticket Booking system enables customers to search for movies, browse showtimes across various cinemas in multiple cities, select preferred seats, and securely book tickets online. The system manages comprehensive information about cinemas, locations, cinema halls, movie listings, and scheduled shows. Customers can view a live seating layout for each show, select and reserve available seats, receive booking confirmations, and complete payment.

In this LLD interview case study, your focus will be on:

  • Modeling cinemas, cinema halls, movies, shows, and seating arrangements across cities.

  • Designing secure seat reservation workflows that prevent double bookings and support concurrent access.

  • Implementing robust payment flows.

  • Ensuring timely notifications and confirmations for all successful bookings.

Note: This system model can be adapted for any online ticketing platform—such as concerts, sports, or events—with similar requirements for real-time seat selection and bookings.

Expectations from the interviewee

Numerous components are present in a typical movie ticket booking system, each with specific constraints and requirements placed on them. The following provides an overview of some of the main expectations that the interviewer will want to hear you discuss in more detail during the interview.

Seat selection

Selecting a seat is an essential part of the movie ticket booking system. The system has to make sure that no two people can book the same seat. The interviewer expects you to ask questions to identify how the system will work in these situations:

  • How will the system make sure that multiple users do not book the same seat?

  • Will there be a timeout session that reserves seats temporarily? Will the system use a first come, first serve algorithm?

  • Will there be transaction locks involved in the system?

Payment handling

One of the most significant attributes of the movie ticket booking system is the payment structure that it provides to its customers. This can vary, so the interviewer would expect you to ask the questions listed below:

  • What payment methods can the customer use (for example, credit card or cash)?

  • How is the payment performed? Does the customer pay themselves online or through a ticket agent on the location?

Price variance

We touched upon the payment methods of the movie ticket booking system, now, the pricing model needs to be clarified by the interviewer, and therefore you may ask questions like these:

  • How will the price of the booking be calculated? Will it vary based on the popularity of the show?

  • Does the seat type affect the pricing?

  • Will there be discount coupon codes?

Duplication

There will be many duplicate instances in our system. The interviewer expects you to ask questions like these:

  • How are we handling these instances, such as the same cinema having multiple cinema halls showing different movies simultaneously?

  • Is the same movie being shown at different times in the same cinema/hall?

Design approach

We will design this Movie Ticket Booking system using the bottom-up design approach. For this purpose, we will follow the steps below:

  • First, we’ll identify core entities such as Cinema, CinemaHall, Movie, Show Seat, and Booking, and define their responsibilities.

  • Next, we’ll model how customers search for movies, view showtimes, and interact with seating layouts to reserve seats.

  • We’ll implement mechanisms to handle concurrency—preventing double bookings and managing seat reservation—while integrating reliable payment methods.

This design approach will address edge cases (such as simultaneous seat selection), scalability, and SOLID principles for maintainable, extendable architecture. We’ll illustrate major workflows with diagrams and code examples in later lessons.

Design pattern 

During an interview, it is always a good practice to discuss the design patterns that a movie ticket booking system falls under. Stating the design patterns gives the interviewer a positive impression and shows that the interviewee is well-versed in the advanced concepts of object-oriented design.

Try to answer the following question. If you are not familiar with design patterns, don’t worry! You can learn about them by asking questions like, “Define design patterns.”

Which design pattern(s) should be used to design a movie ticket booking system? Please elaborate on your choice(s).

Let’s explore the requirements of the movie ticket booking system in the next lesson.