Designing Ticketmaster involves managing massive concurrency for highly popular global events.
The "Race Condition"
To prevent double-booking, use Optimistic Locking in the database (checking version numbers before updating) or a distributed lock (Redis Redlock) for the seat selection phase.
Workflow
- User selects seat → temporary claim (10min TTL).
- Proceed to payment.
- Payment success → finalize booking.
- Payment fail/timeout → release seat.