SeatGrab is building an event ticketing platform for concerts, sports, and theater. The hardest scenario: a major artist announces a stadium tour and 500,000 fans try to buy tickets for a 50,000-seat venue the moment they go on sale.
Core requirements:
- Seat map - the venue has assigned seating. Users browse an interactive seat map, select specific seats, and purchase. Two users must never successfully purchase the same seat.•Hold & release - when a user selects seats, they're temporarily held for 5 minutes. If the user doesn't complete checkout, the seats are released back to the pool.•Waiting room / queue - to prevent the site from crashing, users are placed in a virtual queue when demand exceeds capacity. The system admits users in FIFO order at a controlled rate.•Dynamic pricing - ticket prices adjust based on demand and section popularity, recalculated every 30 seconds.•Anti-bot measures - detect and block automated bots that try to snatch tickets (CAPTCHA, device fingerprinting, rate limiting).•Post-sale features - digital tickets with QR codes, ticket transfers, and refunds.
This challenge is about concurrency control, fairness, and handling extreme traffic spikes.
Design a Ticketmaster-like platform handling 500 k users competing for seats in a 50 k-capacity venue. Build this architecture under realistic production constraints, then validate tradeoffs in the design lab simulation.
Request path: The solution keeps ingress, service logic, and stateful dependencies separated so each layer can scale independently.
Reference flow: Web Clients -> Load Balancer -> API Gateway -> Rate Limiter -> API Service -> Primary SQL DB -> Read Model DB -> Redis Cache