How do I decide on whether to use Rebus.CircuitBreaker or Second Level Retry? I feel like that Second Level Retry Can do the work of CircuitBreaker for example if I find the type of error that is is caused by network I can make the message to return to the TimeoutManager rather than to the error queue. Then in what case do we need the Circuit Breaker in Rebus. Thanks
Related Questions in REBUS
- How much does "SetMaxParallelism" and "SetNumberOfWorkers" in Rebus mix up the order of processing messages from two topics?
- Rebus 8 - Rebus.Subscriptions.ISubscriptionStorage, but a primary registration already exists
- Rebus 7 IErrorHandler implementation not compatible with Rebus 8
- Rebus, send message to Services Bus Azure DLQ
- Can't receive rebus rabbitMQ messages when the object which is published is not shared
- Is it possible to add custom serialisation to Rebus FakeBus to support polymorphic types using .NET 6.0 or lower?
- Is there a way to create a generic IFailed<T> to catch unimplemented second level retries in Rebus?
- Rebus with secondLevelRetriesEnabled enable retries doesn't stop retrying on IFailed<T> handler
- Rebus Azure Pub Sub pattern
- Monitoring Rebus Queues
- How to implement a Saga on Topos?
- Rebus publisher tries to route the message
- Rebus: Unable to modify / add new headers with BeforeMessageHandled event
- Logging Incoming and Outgoing Messages to Rebus
- Rebus with publish/subscribe in two services - how to properly configure rebus
Related Questions in REBUS-AZURESERVICEBUS
- Rebus with secondLevelRetriesEnabled enable retries doesn't stop retrying on IFailed<T> handler
- Rebus Azure Pub Sub pattern
- Rebus: Unable to modify / add new headers with BeforeMessageHandled event
- Rebus with publish/subscribe in two services - how to properly configure rebus
- Rebus CircuitBreaker vs Second Level Retry
- Request-reply with more clients and one server
- Why is Rebus.Send not working after update to .NET 5 using Azure Service Bus
- Is it possible to use Rebus with Azure Functions?
- Handling defunct deferred (timeout) messages?
- C# netcore app could not resolve Rebus.Bus.IBus in Docker Windows Container
- Rebus with Azure Service Bus, subscribe to an interface
- Rebus, using Castle Windsor with Rebus
- Rebus Azure topic names cleanup
- How to use Rebus data bus attachments with Rebus.Async replies
- Rebus - System.MissingMethodException : Method not found: 'System.Threading.Tasks.Task Rebus.Bus.IBus.Send'
Related Questions in REBUS-RABBITMQ
- Rebus can't serialize message that is published with dotnet CAP library in RabbitMQ
- How much does "SetMaxParallelism" and "SetNumberOfWorkers" in Rebus mix up the order of processing messages from two topics?
- Read message from error queue in RabbitMQ
- Can't receive rebus rabbitMQ messages when the object which is published is not shared
- Rebus with publish/subscribe in two services - how to properly configure rebus
- Identify rebus workers
- Rebus CircuitBreaker vs Second Level Retry
- Rebus Timeout Manager
- How to immediately stop processing new messages when inside a message handler?
- How to handle blocked RabbitmMQ connections using Rebus
- Rebus Singleton Connection with RabbitMQ
- Can Rebus be configured to set error queue type to quorum in RabbitMQ?
- Rebus saga consistency
- Rebus retry policy when RabbitMQ is temporarily down
- Rebus - Rabbitmq map all the objects in specified namespace/assembly
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Circuit breaker is a pretty fixed concept, as its purpose is to avoid hammering a resource when there is an error, which can be used to avoid causing more harm in situations where e.g. contention and high load has caused the resource to start failing.
2nd level retries offer more flexibility, as you can use them to code pretty much any kind of advanced retry logic you can think of. You could probably implement your own kind of circuit breaker using 2nd level retries, and - as you suggest - you can use them in conjunction with deferred messages to implement a more sophisticated retry strategy.