System design interview question
Design a Movie Theater Ticket Booking System
Design a system that allows users to browse movies, view available seats in a theater, book tickets, and make payments. The system must handle multiple movies, multiple showtimes per movie, and seat availability tracking. Key entities include Movies, Shows (showtimes), Seats, Bookings, and Users. Important behaviors include checking seat availability, blocking seats during booking (to prevent double bookings), calculating ticket prices based on seat type (regular/premium), and managing booking cancellations. Consider edge cases: what happens if two users try to book the same seat simultaneously, how to handle failed payments, and how pricing varies for matinee vs. evening shows.
Practice this question step by step with an AI interviewer that reviews your requirements, your architecture and your trade-offs, and scores the design.