BookMyShow Ticket Booking System Design

How a movie ticket booking platform like BookMyShow prevents double booking: seat locking, a booking service, payment gateway integration and notifications.

BookMyShow Ticket Booking System Design — System design

How it flows

  1. Web App → API Gateway (HTTPS/REST)
  2. Mobile App → API Gateway (HTTPS/REST)
  3. API Gateway → Auth Service (JWT Validate)
  4. API Gateway → Search Service (REST)
  5. API Gateway → Booking Service (REST)
  6. API Gateway → Payment Service (REST)
  7. Booking Service → Seat Lock Service (Lock / Release)
  8. Booking Service → Primary Database (SQL)
  9. Seat Lock Service → Cache / Seat Lock Store (Redis TTL)
  10. Search Service → Search Index (Query)
  11. Payment Service → Payment Gateway (HTTPS)
  12. Payment Service → Message Broker (Payment Event)
  13. Booking Service → Message Broker (Booking Event)
  14. Message Broker → Notification Service (Consume)
  15. Theatre Integration → Theatre Partner APIs (REST / XML)
  16. Booking Service → Theatre Integration (gRPC)
  17. Booking Service → Cache / Seat Lock Store (Read Cache)
  18. Message Broker → Monitoring & Logging (Logs / Metrics)
  19. Payment Service → Primary Database (SQL)

Components

Web App · Mobile App · API Gateway · Auth Service · Search Service · Booking Service · Seat Lock Service · Payment Service · Notification Service · Theatre Integration · Primary Database · Cache / Seat Lock Store · Search Index · Payment Gateway · Theatre Partner APIs · Message Broker · Monitoring & Logging

← All designs

Try AI Flowchart free →