Skip to content
playdsa
Preferences

Make yourself comfortable.

Saved on this browser. Your device’s reduced-motion preference is always respected.

Theme
Advanced settings

Open the Low-Level Workshop

Learn
Play
Prove
Problem context and objectives
Mission briefing

Lead systems engineer · Open the Low-Level Workshop

Design the internals of a limited-stock reward redemption component. Define its API, domain state, persistence constraints, concurrency behavior, and testable responsibilities.

The design must survive campaign 100K rewards and burst 50K requests/s. Every box must earn its place by satisfying a requirement or containing a failure.

How you win

  1. 1Trace one user action from request to durable outcome
  2. 2Connect every component to a stated requirement
  3. 3Explain the losing tradeoff, not only the chosen technology

Rules and pressure

  • campaign: 100K rewards
  • burst: 50K requests/s
  • Redeem once per player
  • Never oversell inventory
Lesson 1 of 3

Live architecture trace

Open the Low-Level Workshop: request to outcome

1/5
◇POST /redemptionsedge⬡Redeem handlerservice⬡Campaign aggregateserviceDBRepositorydata⇥OutboxqueueWKAudit consumerworker
LIVE EVENTcommand + key

POST /redemptions sends “command + key” to Redeem handler. An LLD contract names inputs, outputs, validation, status or error types, authentication context, idempotency behavior, and compatibility expectations.

campaign = 100K rewards

Design the internals of a limited-stock reward redemption component. Define its API, domain state, persistence constraints, concurrency behavior, and testable responsibilities. Follow one real user action through the complete architecture; a component is useful only when you can explain the request, state, or failure it handles.

Help shape PlayDSA

Something confusing, broken, or missing? Leave a quick note without leaving your lesson.

Please leave out passwords, payment details and other private information.

Page included: /

Sign in to save feedback here, or send it with your email app. Your draft stays here while you sign in.

Open email instead