Official · Product & backend · intermediate
Sell a limited drop without overselling
Separate reservation, payment and confirmed purchase during a 50,000-person launch.
The question
Design checkout for a drop of 2,000 individually sellable items. A product manager wants a countdown reservation, a trustworthy order confirmation and a waitlist when inventory is exhausted.
- 50,000 customers may arrive within a minute, but only 2,000 items exist.
- The payment provider can send duplicated or out-of-order webhooks; a timed-out charge can later succeed.
- A user can retry checkout from two devices. Product policy permits one item per customer.
What to cover
Specify reserve, pay, confirm and status behavior, including idempotency keys and honest pending states.
Show reservation/order/payment states, inventory ownership and the atomic transition that prevents oversell.
Trace expiry racing with a delayed successful payment and two-device retries.
Estimate burst load, protect the invariant under overload and explain fair-enough admission or its limitations.
Compare holding inventory before payment with allocating after payment, including the customer experience.
How your practice is reviewed
- Inventory and purchase invariants (35 points): Identifies enforceable atomic ownership and one-per-customer rules, including race conditions.
- Payment lifecycle and compensation (25 points): Handles duplicate/out-of-order callbacks and late successful payments with explicit states and reconciliation.
- Customer contract (20 points): APIs, pending outcomes, retries and admission behavior give customers accurate feedback.
- Sizing and justified tradeoffs (20 points): Burst estimates and backpressure preserve correctness and explain a credible alternative.
Discuss & learn
Ask the community, or tag @Coach for a contextual AI answer.