The first Fences release. Fences is a fork of Polly 8.7.0, published by Brighter Command as freely redistributable binaries with no Open Source Maintainers Fee.
- Package identifiers are now
Paramore.Fences.*:Polly.CorebecomesParamore.Fences.Core,Polly.ExtensionsbecomesParamore.Fences.Extensions,Polly.RateLimitingbecomesParamore.Fences.RateLimiting,Polly.TestingbecomesParamore.Fences.Testing, andPolly— the pre-v8 legacy API — becomesParamore.Fences. - Namespaces are now
Paramore.Fences.*.using Polly;becomesusing Paramore.Fences;, and every namespace maps one-for-one. PollyServiceCollectionExtensionsis renamed toResilienceServiceCollectionExtensions. This is the only public type whose name changed. It holds extension methods, so callers writeservices.AddResiliencePipeline(...)and rarely name the class.- Telemetry names changed, and a find-and-replace over your own source will not fix them: the meter and activity source
PollybecomesParamore.Fences, and the metricsresilience.polly.pipeline.duration,resilience.polly.strategy.eventsandresilience.polly.strategy.attempt.durationbecomeresilience.fences.*. Dashboards, alerts and collector configuration need updating by hand. - Assemblies are signed with a new strong-name key, public key token
6998A40D28482B6D. Anything binding to Polly's old token needs rebuilding rather than redirecting. - Authenticode signing is dropped, matching the other Brighter Command projects.
- Binaries are published free of charge under the BSD 3-Clause licence, with no revenue threshold and no fee.
- Documentation is rewritten for Fences and published at https://brightercommand.github.io/Fences/
- Packages are published from CI only, through NuGet trusted publishing, with build provenance attestation.
The API is unchanged
No strategy, option or behaviour was redesigned. This release is Polly 8.7.0's API under new names: retry, circuit breaker, timeout, rate limiter, hedging, fallback and chaos strategies all behave exactly as they did. The rename is namespaces, assemblies and package identifiers, plus the one type above.
Why Fences exists
Polly's source is BSD 3-Clause licensed and stays open source. That licence lets anyone redistribute it, in source or binary form, provided the copyright notice and disclaimer are retained. Building and publishing our own binaries from that source is squarely within the grant.
The Open Source Maintainers Fee is App vNext's policy for the binaries they publish. It governs their distribution. It does not change the licence on the source, and it does not reach binaries built by anyone else — and that freedom is the OSMF's own argument for being compatible with open source. It is one door, and it opens both ways.
Fences is the binary somebody else builds. See Why Fences exists and ADR 0002.
Migrating from Polly
For a project on Polly 8.7.0 this is a change of package reference and namespace, not a rewrite. See Migrate from Polly for the full mapping, including the one case Fences cannot help with: Microsoft.Extensions.Http.Resilience keeps Polly in your dependency graph regardless.
Provenance
Forked from App-vNext/Polly at commit 47e3b41 (Polly 8.7.0, 17 August 2026). Everything below that commit is the work of Polly's authors and contributors, and CHANGELOG.md retains their history in full. Fences is not affiliated with, endorsed by, or supported by App vNext or the Polly maintainers. See NOTICE.md and ACKNOWLEDGEMENTS.md.