← ClaudeAtlas

resiliencelisted

Polly v8 resilience patterns for .NET — retry, circuit breaker, timeout, hedging, and IHttpClientFactory integration using Microsoft.Extensions.Resilience.
zdanovichnick/dotnet-pilot · ★ 3 · AI & Automation · score 76
Install: claude install-skill zdanovichnick/dotnet-pilot
# Resilience Patterns (Polly v8) Reference for building fault-tolerant .NET services using Polly v8 and `Microsoft.Extensions.Resilience`. Used by `dnp-planner` and `dnp-tdd-developer-hard`. ## Package Reference ```xml <PackageReference Include="Microsoft.Extensions.Resilience" Version="9.*" /> <!-- For HTTP clients: --> <PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.*" /> ``` **Breaking change from Polly v7**: the `Policy.Handle<>().Retry()` API is gone. Use `ResiliencePipelineBuilder` exclusively. ## Core Concepts | Concept | Purpose | |---------|---------| | `ResiliencePipeline` | Executes a delegate through a chain of strategies | | `ResiliencePipelineBuilder` | Fluent builder — add strategies in order (outermost first) | | `ResiliencePipelineProvider<TKey>` | DI-resolved registry; resolve pipelines by key | | `ResilienceContext` | Per-execution metadata (cancellation token, properties) | Strategies execute in the order they are added. Outer strategies wrap inner ones — add timeout last to apply it per-attempt, or first to apply it to the whole pipeline. ## DI Registration ```csharp builder.Services.AddResiliencePipeline("database", pipeline => pipeline .AddRetry(new RetryStrategyOptions { MaxRetryAttempts = 3, Delay = TimeSpan.FromSeconds(1), BackoffType = DelayBackoffType.Exponential, UseJitter = true, ShouldHandle = new PredicateBuilder()