How to configure a Circuit Breaker strategy in .NET using Polly?

Asked -16 seconds ago Updated 4 hours ago 17 views

0

The Circuit Breaker pattern isolates failing services to prevent cascading failures throughout a system. When failures cross a specified threshold, the circuit 'opens' and immediately rejects further calls without calling the underlying service.

Configuring Circuit Breaker in Polly v8

You can configure an advanced circuit breaker using CircuitBreakerStrategyOptions.

Code Example

var pipeline = new ResiliencePipelineBuilder()
    .AddCircuitBreaker(new CircuitBreakerStrategyOptions
    {
        ShouldHandle = new PredicateBuilder().Handle<Exception>(),
        FailureRatio = 0.5,
        SamplingDuration = TimeSpan.FromSeconds(10),
        MinimumThroughput = 8,
        BreakDuration = TimeSpan.FromSeconds(30)
    })
    .Build();

try
{
    await pipeline.ExecuteAsync(async token =>
    {
        await ExternalServiceCallAsync(token);
    });
}
catch (BrokenCircuitException ex)
{
    // Handle open circuit gracefully
}

Circuit States

  • Closed: Normal operation, requests pass through.
  • Open: Circuit broken, requests fail fast.
  • Half-Open: Trial state testing if downstream service recovered.

0 Answers


Write Your Answer