Skip to content

Bring back simple Circuitbreaker #1854

@Epibatidin

Description

@Epibatidin

Is your feature request related to a specific problem? Or an existing feature?

I try to add some resilience to a relatively small project.
We had some horrible expierence with Azure Service Bus just not being available or being throttled.
If this happens often enough we just want to fallback to not doing async message processing at all.
WE discussed about it and came to the conclussion that normally everything works just fine but then from 1 moment to the other everything just falls apart.
I picked the circuitbreaker and fallback for that. if it fails 20 times in a row disable the servicebus feature and fallback to sync processing.
in polly V8 there is only the advances (in v7 terms) circuitbreaker, i have read through the documentation and all the if then else and it depends there and i am not sure how to pick any of them.
like yes 20 as a threshhold - but will we get 20 messages at all. what if 10 messages fail but only 19 messages arived it not a threashold of 50% .

the business is just not large enough for all the monitoring and discussion and thinking through it to pick the right numbers for the advanced (yet default) circuit breaker setup.

Describe the solution you'd like

bring back the basic circuit breaker.

if it fails 20 times in a row - open it. thats its.

Additional context

currently i look into combining the polly v7 basic cirucit braker with my v8 fallback resilience pipeline. i think that will work but i wont get the new fanyness like integrated telemetry.

telemetry is currently high in value.

i have stitched togehter a horrible reflection magic solution to get all the internals like the ConsecutiveCountCircuitController into the advanced circuit resilience pipeline. but i hope it will never make it
through the review process !

a easy workaround here would be to make the ConsecutiveCountCircuitController public so it can be added as a strategy.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions