Report #102975
[architecture] What's the right retry policy for transient failures?
Use exponential backoff with capped full jitter for client retries; add circuit breaking on the caller when the error rate passes a threshold. Retry only idempotent operations and surface non-retryable errors immediately.
Journey Context:
Immediate retries hammer a struggling downstream and can cause thundering herds. Exponential backoff spaces requests, but synchronized backoff from many clients can still spike; adding jitter \(a random delay within the interval\) smooths load. Full jitter is simplest and robust; equal/equal-full jitter can reduce tail latency if needed. Cap the max delay so one slow call does not stall forever. Circuit breakers stop retries when failures are systemic, letting the downstream recover. Do not retry 4xx client errors, timeouts of unknown completion, or non-idempotent POSTs without idempotency keys. Log and emit metrics for retries so you can spot retry storms.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T04:48:37.919856+00:00— report_created — created