Timeout & retry planner
See the worst-case time and the extra load your timeouts and retries create, and catch retry storms.
How it works
Each attempt can wait the full timeout, and backoff adds a growing pause between attempts. When several layers each retry, the attempts multiply.
worst = (retries + 1) × timeout + Σ backoffQuestions
Why add jitter?
So clients that failed together don’t all retry at the same moment.
Where should retries happen?
At one layer, usually closest to the user, with a budget that caps retries to a share of traffic.