# App-vNext/Polly

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/app-vnext-polly).**

14,134 stars · 1,268 forks · C# · bsd-3-clause

## Links

- GitHub: https://github.com/App-vNext/Polly
- Homepage: https://www.thepollyproject.org
- awesome-repositories: https://awesome-repositories.com/repository/app-vnext-polly.md

## Topics

`circuit-breaker` `circuit-breaker-pattern` `dotnet` `fault-handler` `resilience` `resiliency-patterns` `retry-strategies` `transient-fault-handling`

## Description

Polly is a resilience and transient-fault-handling library for .NET applications. It provides a framework for defining and executing stability patterns that manage failures and resource exhaustion during operation execution.

The library enables developers to compose complex resilience strategies through a fluent builder pattern, wrapping target operations in functional decorators. These policies intercept execution flow to apply automated recovery mechanisms, such as retries for temporary errors or circuit breakers that isolate unstable components by blocking requests.

The framework supports both synchronous and asynchronous execution paths, integrating with native cancellation tokens to enforce time-bounded limits on operations. By managing these execution lifecycles, the library helps maintain system responsiveness and prevents cascading failures in distributed service architectures.

## Tags

### Software Engineering & Architecture

- [Resiliency Patterns](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/design-patterns/resiliency-patterns.md) — Provides a comprehensive library for defining resilience policies like retries, timeouts, and circuit breakers in .NET applications.
- [Fault Tolerance](https://awesome-repositories.com/f/software-engineering-architecture/fault-tolerance.md) — Offers a framework of execution strategies to improve application stability during remote service calls.
- [Retry Strategies](https://awesome-repositories.com/f/software-engineering-architecture/retry-strategies.md) — Provides automated retry logic for operations that fail due to temporary errors. ([source](https://www.thepollyproject.org))
- [Error Handling Strategies](https://awesome-repositories.com/f/software-engineering-architecture/error-handling-strategies.md) — Implements robust error handling strategies for automated recovery from temporary faults.
- [Context-Aware Cancellation](https://awesome-repositories.com/f/software-engineering-architecture/rpc-cancellation/asynchronous-operation-cancellation/context-aware-cancellation.md) — Enforces time-bounded limits on operations using native cancellation tokens to prevent resource exhaustion.
- [Asynchronous Execution](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/asynchronous-execution.md) — Supports both synchronous and asynchronous execution paths for flexible operation management.
- [Detection Mechanisms](https://awesome-repositories.com/f/software-engineering-architecture/error-handling/exception-logic-structures/exception-hierarchies/detection-mechanisms.md) — Provides automated detection of transient faults by monitoring execution results for specific error types.

### Networking & Communication

- [Circuit Breakers](https://awesome-repositories.com/f/networking-communication/traffic-management-gateways/circuit-breakers.md) — Implements stateful circuit breakers to isolate unstable components and prevent cascading failures.
- [Resilient Communication](https://awesome-repositories.com/f/networking-communication/resilient-communication.md) — Ensures reliable service communication by automatically handling transient network errors and outages.

### Testing & Quality Assurance

- [Failure Isolation Mechanisms](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-isolation/service-isolation-utilities/failure-isolation-mechanisms.md) — Isolates unstable services by blocking requests to prevent cascading failures and allow system recovery. ([source](https://www.thepollyproject.org))
- [Timeout Enforcements](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-execution-timeouts/timeout-enforcements.md) — Enforces execution timeouts to cancel long-running tasks and prevent resource exhaustion. ([source](https://www.thepollyproject.org))

### Development Tools & Productivity

- [Execution Decorators](https://awesome-repositories.com/f/development-tools-productivity/task-execution/execution-policies/execution-decorators.md) — Wraps target operations in functional decorators to intercept and modify execution flow.
- [Fluent Builders](https://awesome-repositories.com/f/development-tools-productivity/task-execution/execution-policies/fluent-builders.md) — Enables the composition of complex resilience strategies through a fluent, chainable builder pattern.

### System Administration & Monitoring

- [Responsiveness Management](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring/responsiveness-management.md) — Maintains system responsiveness by cancelling long-running operations that threaten resource exhaustion.
