# Retry load needs a budget

Principle `retry-load-needs-a-budget`. One retry owner must control attempts, delay, and aggregate load.

Also searched as: retry budget, randomized exponential backoff, retry amplification.

Immediate retries can extend caller waiting and worsen a persistent outage. Randomize backoff and consider shared retry accounting beyond per-call limits.

Book basis: [B4](/bibliography#b4-release-it), [B9](/bibliography#b9-serverless-architectures-on-aws), [B10](/bibliography#b10-a-philosophy-of-software-design), [B12](/bibliography#b12-site-reliability-engineering).

## Failure it prevents

Bounded requests collectively flood a recovering dependency, or nested retries multiply attempts.

## Our Effect 4.0.5 reading

Effect.retry and Schedule.exponential, jittered, recurs, and upTo provide local policies. Shared budgets require an explicit owner and accounting scope.

Source: `packages/effect/src/Effect.ts`, `packages/effect/src/Schedule.ts`.

## How to check

Count attempts across the call path during a common outage. Check the declared total budget and caller deadline. This is our proposed verification, not a quoted procedure.

Continue with [Circuit breakers have state](/principles/circuit-breakers-have-state), [Admission control protects recovery](/principles/admission-controls-new-work).

Connect this to [the existing rat-stack guidance](https://ratstack.sh/lore/concurrent-work-needs-an-owner).

Use [the durability skill](/skills/durability) for the full review. Return to [the durability index](/principles/durability).

## Skills
- [Durability starts with a recovery record](/principles/durability)

## Sources
- Nygard, Michael T. *Release It!: Design and Deploy Production-Ready Software*. Pragmatic Bookshelf, 2007. [Link](https://archive.org/details/releaseitdesignd0000nyga). ([b4-release-it](/bibliography#b4-release-it))
- Sbarski, Peter; Cui, Yan; Nair, Ajay. *Serverless Architectures on AWS*, Second Edition. [Link](https://www.manning.com/books/serverless-architectures-on-aws-second-edition). ([b9-serverless-architectures-on-aws](/bibliography#b9-serverless-architectures-on-aws))
- Ousterhout, John. *A Philosophy of Software Design*. 2018. [Link](https://web.stanford.edu/~ouster/cgi-bin/book.php). ([b10-a-philosophy-of-software-design](/bibliography#b10-a-philosophy-of-software-design))
- Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard, editors. *Site Reliability Engineering: How Google Runs Production Systems*. O’Reilly, 2016. [Link](https://sre.google/sre-book/table-of-contents/). ([b12-site-reliability-engineering](/bibliography#b12-site-reliability-engineering))

## References
- [Effect contributors. Effect 4.0.5. Effect.ts](https://github.com/Effect-TS/effect/blob/7f524e25cfb49a71ac39b0f44278d08d40dda5de/packages/effect/src/Effect.ts). Pinned source for our Effect mapping, not a claim from the book.
- [Effect contributors. Effect 4.0.5. Schedule.ts](https://github.com/Effect-TS/effect/blob/7f524e25cfb49a71ac39b0f44278d08d40dda5de/packages/effect/src/Schedule.ts). Pinned source for our Effect mapping, not a claim from the book.
