14. Sell a limited drop without overselling
Separate reservation, payment and confirmed purchase during a 50,000-person launch.
The brief
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.
Constraints
- Reservation lifetime≤ 300 seconds
- Declare the reservation window offered to a customer; it must not exceed five minutes.
- Inventory invariant
- Confirmed allocations must never exceed available inventory; distinguish an authorization from a captured payment.
- One item per customer
- Enforce the policy across concurrent requests and retries.
- Late payment outcome
- Define the customer outcome and compensation when a payment succeeds after a reservation expires.
What to cover
- 01
Customer and API contract
Specify reserve, pay, confirm and status behavior, including idempotency keys and honest pending states.
- 02
Data and state machine
Show reservation/order/payment states, inventory ownership and the atomic transition that prevents oversell.
- 03
Race walkthrough
Trace expiry racing with a delayed successful payment and two-device retries.
- 04
Load and admission
Estimate burst load, protect the invariant under overload and explain fair-enough admission or its limitations.
- 05
Product tradeoff
Compare holding inventory before payment with allocating after payment, including the customer experience.
Worked designs
No worked design has been published for this brief yet. You can start an attempt and share your approach in the discussion.
Review rubric
AI feedback uses these criteria. Scores are practice feedback.
Inventory and purchase invariants
Identifies enforceable atomic ownership and one-per-customer rules, including race conditions.
Payment lifecycle and compensation
Handles duplicate/out-of-order callbacks and late successful payments with explicit states and reconciliation.
Customer contract
APIs, pending outcomes, retries and admission behavior give customers accurate feedback.
Sizing and justified tradeoffs
Burst estimates and backpressure preserve correctness and explain a credible alternative.
Discussion
Share an approach, ask a question, or tag @Coach.
Loading discussion…