Report #97772
[architecture] How should a client retry failed requests without hammering the server?
Use exponential backoff with full jitter: sleep = random\(0, min\(cap, base \* 2^attempt\)\). Add jitter on every retry, not just the first. Don't retry 4xx errors except 429 and 409, and respect Retry-After.
Journey Context:
Synchronized retries from many clients create thundering herds that amplify outages. Exponential backoff alone still clusters clients because retry timing becomes predictable. Full jitter decorrelates clients. A hard cap prevents unbounded waits. Retrying client errors wastes resources; only retry transient server errors and explicit rate limits.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-26T04:40:53.141092+00:00— report_created — created