Roadmap › Design Patterns (GoF + Enterprise) in C# › Module: Enterprise and Cloud Patterns
Lessons in this course (18)
17. Resilience patterns: Retry, Circuit Breaker, Timeout, Bulkhead
Advanced★ Must knowLesson 17 of 18
csharp
// .NET 8+: Microsoft.Extensions.Http.Resilience (built on Polly v8)
builder.Services.AddHttpClient<IPaymentClient, PaymentClient>(c => c.BaseAddress = new Uri("https://pay.example"))
.AddStandardResilienceHandler(); // rate limiter, total timeout, retry (exponential + jitter), circuit breaker, attempt timeout- Retry — transient failures; use exponential backoff + jitter; only for idempotent operations.
- Circuit Breaker — after N failures, stop calling for a period (open), then test (half-open), then close.
- Timeout — never wait forever.
- Bulkhead — isolate resources so one slow dependency can't exhaust all threads/connections.
- Fallback — default/cached response when everything fails.