Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question]: Are retry budget as described in this excellent article #2348

Open
buckleyGI opened this issue Oct 16, 2024 · 1 comment
Open
Labels

Comments

@buckleyGI
Copy link

What are you wanting to achieve?

In this Good Retry, Bad Retry: An Incident Story the strategy of "Retry budget" is described
Retry budget (or adaptive retry): Retries are always allowed, but within a budget, for example, no more than 10% of the number of successful requests. In case of service problems, it can receive no more than 10% of additional traffic.

Reading the polly documentation it's not clear that this is present out of the box or can be achieved with combing some of the primitives. It's a great read that article!

What code or approach do you have so far?

Circuit breaker but it's an all or nothing strategy, not configurable as with Retry Budget.

Additional context

No response

@martincostello
Copy link
Member

We don't have Retry Budget as a first-class concept for retries (in fact I've not heard of that as a specific term before).

The concept sounds like a hybrid of our retry, circuit-breaking (the ability to track successful vs. failed operations) and rate-limiting (capping the total throughput) in terms of the strategies we provide.

I'm not sure there would be an easy way to implement this with the library as-is today with our existing strategies without reimplementing/refactoring a lot of the state tracking used by circuit breakers to control whether or not do do retries based on some global state tracking the success vs. failure rate and the overall throughput.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants