Design Ticket Master
Design a ticketing system for managing events and selling tickets. The system should support creating events, listing available tickets, reserving seats, purchasing tickets, and handling concurrency safely.
Discuss the core data structures, API design, and how you would prevent double-booking when multiple users try to buy the same ticket at the same time.
这道题本质上是一个系统设计题,核心关注点是如何为 Ticket Master 这类售票平台建模事件、座位和订单,并在高并发场景下保证同一张票不会被重复售出。常见做法是把票务状态拆成可用、已预留、已购买等阶段,配合锁、事务或乐观并发控制来处理抢票竞争;同时需要设计清晰的接口来支持创建活动、查询余票、预留和支付确认等流程。