Examples of circuit breaker pattern with retry mechanism

First of all, such integrations should run in isolation on a separate endpoint. This way if this endpoint is stopped it will only affect this integration channel.

There is no easy way to currently dynamically limit concurrency or throughput.

I can recommend to create a monitor that checks the state of this integration API and will stop the endpoint when it is in a faulty state. This way the queue will just buffer all messages. This will make sure your endpoint isn’t wasting valuable resources on retrying messages of which you already know upfront they will fail. No need to schedule retries and other stuff. If the monitor check returns succes you can start the endpoint again and continue message processing.

Also, if your integration channel allows for it you could limit the maximum concurrency. By default this is

The default concurrency limit is max(Number of logical processors, 2) .

An additional approach it to apply rate limiting to prevent flooding of your integration during peaks so achieve a stable integration channel.