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.