Phase 27 of 30 · Topic 27.4

Circuit Breaker Pattern with Polly

1Concept

A Circuit Breaker monitors failure rates. When failures exceed a threshold (e.g. 50%), the circuit 'Opens', immediately failing fast for a duration to allow the struggling downstream service to recover without collapsing.

2Architecture Diagram

[ Closed (Normal Operation) ] ──(Failure Rate > 50%)──> [ Open (Fails Fast Immediately) ]
                                                                  │ (After 30s break)
                                                                  ▼
                                                      [ Half-Open (Test Trial Requests) ]

3Code Example

C# 13 & .NET 9
using System;

public class CircuitBreakerConceptDemo
{
    public static void Main()
    {
        Console.WriteLine("Circuit Breaker Strategy:");
        Console.WriteLine("builder.AddCircuitBreaker(new CircuitBreakerStrategyOptions {");
        Console.WriteLine("    FailureRatio = 0.5,");
        Console.WriteLine("    SamplingDuration = TimeSpan.FromSeconds(10),");
        Console.WriteLine("    BreakDuration = TimeSpan.FromSeconds(30)");
        Console.WriteLine("});");
    }
}

4Expected Output

Circuit Breaker Strategy:
builder.AddCircuitBreaker(new CircuitBreakerStrategyOptions {
    FailureRatio = 0.5,
    SamplingDuration = TimeSpan.FromSeconds(10),
    BreakDuration = TimeSpan.FromSeconds(30)
});

5Key Takeaways

  • Prevents cascading microservice system failures.
  • Fail fast saves thread pool resources while downstream dependencies are down.
  • Emit metrics when the circuit state transitions to Open.