Polly provides resilience patterns for .NET – retry, circuit breaker, timeout, fallback. Essential for microservices.
Installation
dotnet add package PollyRetry Policy
var retryPolicy = Policy
.Handle<HttpRequestException>()
.WaitAndRetryAsync(3, attempt => TimeSpan.FromSeconds(Math.Pow(2, attempt)));
var result = await retryPolicy.ExecuteAsync(() => httpClient.GetAsync(url));Circuit Breaker
var circuitBreaker = Policy
.Handle<Exception>()
.CircuitBreakerAsync(
exceptionsAllowedBeforeBreaking: 5,
durationOfBreak: TimeSpan.FromMinutes(1));With HttpClientFactory
services.AddHttpClient<MyService>()
.AddTransientHttpErrorPolicy(p =>
p.WaitAndRetryAsync(3, _ => TimeSpan.FromSeconds(1)));References
Discover more from C4: Container, Code, Cloud & Context
Subscribe to get the latest posts sent to your email.