Separate reservation, payment and confirmed purchase during a 50,000-person launch.
Backend and product engineers designing software behavior.
Your approach: Use diagrams, tables or prose for customer contracts, state transitions and data ownership; include APIs only to the depth the question requests.
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.
Declare the reservation window offered to a customer; it must not exceed five minutes.
Required target: ≤ 300 seconds
Confirmed allocations must never exceed available inventory; distinguish an authorization from a captured payment.
Enforce the policy across concurrent requests and retries.
Define the customer outcome and compensation when a payment succeeds after a reservation expires.
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.