Play, get feedback, save local progress, and optionally submit a leaderboard score.
Concept explanation
Retries are unavoidable in distributed systems. This game trains the backend decisions that keep retries safe when clients time out, jobs are still in progress, or two requests compete for the same state.
Your local progress
0 XP0 games played0 completed
Progress, review history, and best scores are stored in this browser with localStorage.
Use the controls below. Feedback appears immediately, and final scores are stored locally.
Leaderboard
Top 10 submitted scores. No account required.
Loading leaderboard...
Finish the game to load your latest local score.
Learning objectives
Decide when operations need idempotency keys and stored results.
Handle retries, in-progress operations, and reused keys with different payloads.
Combine idempotency with database constraints and transactional consistency.
How to play
Read the backend operation and retry story.
Choose the safest server behavior for duplicate or uncertain requests.
Use the explanation to separate natural idempotency, idempotency keys, and consistency constraints.
Scoring
Correct retry behavior earns full points.
Unsafe duplicate behavior earns minimal points and shows the safer pattern.
Your final score is saved locally after the clinic round.
Backend concept notes
Idempotency lets clients retry when the network is uncertain without creating duplicate side effects. For POST operations, that usually means storing the first result by key and request fingerprint.
Idempotency is not a substitute for consistency. Scarce inventory, uniqueness, and competing users still need transactional checks or database constraints.
Common mistakes
Creating a second payment, order, or import because a retry arrived later.
Allowing the same idempotency key to mean different request bodies.
Forgetting that in-progress requests also need duplicate protection.
Using browser storage or IP address as the source of server-side dedupe truth.
Related Backend Study Lab articles
Use the main site for deeper reading after playing.
Short answers for how this game fits backend interview and study practice.
Do all POST requests need idempotency keys?
No. They are most important for operations where duplicate side effects are expensive, confusing, or dangerous.
Is PUT always idempotent?
PUT is intended to be idempotent when it replaces a stable resource with the same representation, but the server implementation still has to honor that behavior.