The scenario
A service uses a shared HTTP client to recover from temporary failures. You need to reason about which operations may be repeated and how waiting affects the caller’s time budget.
A failure to reason about
A delivery request succeeds remotely, but its response is lost. Repeating the write without a repetition contract can create two deliveries.
Illustrative context for the topic. The exercise’s full requirements arrive in the workspace.
Questions to bring to your review
- Where is request identity established?
- Which layer owns the deadline?
- How can a test observe extra work even when the final response looks correct?
Skills you will practice
- Retries
- Deadlines
- Idempotency
Read the existing code, reproduce the reported behavior, review proposed changes, and verify your final implementation. You can use AI assistance while staying responsible for the result.
Prepare with a worked example
- Retry safety and idempotency, with a worked example
Reason about ambiguous failures, repeated writes, deadlines, and backoff before adding retries to a backend service.
See how nrml evaluates an attempt, including the limits of automated evidence.