NEW
Configures automatic reattempts of failed operations, often with exponential backoff and jitter to handle transient faults.
DESCRIPTION
A retry policy mitigates transient errors by reissuing failed requests after delays. It typically uses exponential backoff, jitter, and maximum attempts to avoid thundering herds. Idempotent operations are crucial to prevent unintended side effects on retries. Policies should be tuned to SLA, error classes, and rate limits. Integration with circuit breakers and timeouts improves resilience. Observability captures retry counts, backoff behavior, and outcomes for tuning.
ALTERNATIVE DEFINITIONS
Microsoft
Use this pattern to enable an application to handle transient failures when it attempts to connect to a service or network resource by transparently retrying a failed operation.
Emphasizes transient failures and transparent retries at the application level.
AWS
If your request fails, you can retry the request. Many AWS SDKs provide automatic retry logic with exponential backoff.
Notes built-in SDK retries and exponential backoff on AWS.
Google Cloud
Clients should retry requests that fail due to transient errors; use exponential backoff with jitter to avoid overwhelming the service.
Adds jitter guidance to reduce coordinated retries and load spikes.
RELATED TERMS
Retry with Backoff Jitter Idempotency Timeout Dead Letter Queue Transient Fault Handling Backoff Policy
COMPETING TERMS
Circuit Breaker Pattern Fail Fast
RELATIONS
- Broader: Policy
KNOWLEDGE AREAS
Software Engineering Data Engineering MLOps Observability & Telemetry
TARGET AUDIENCE
Software Developer Data Engineer MLOps Engineer DevOps Engineer AI Engineer
EXTERNAL SOURCES
- Wikipedia - Exponential backoff
- Microsoft - Cloud design Retry pattern
- AWS Builders’ Library - Timeouts, retries, and jitter deep dive
- Google Cloud - Error handling and retries guidelines
TOP QUESTIONS
When should a Retry Policy be used?
Use it for transient failures such as timeouts, rate limits, or network glitches. Avoid retries for permanent errors like validation failures.
Category: Guidance
Why add jitter to a Retry Policy?
Jitter randomizes wait times to prevent synchronized retries that overwhelm services, improving stability during outages.
Category: Best Practices
What is the risk of retrying non-idempotent operations?
It can duplicate side effects, causing data corruption or inconsistent states. Prefer idempotent APIs or deduplication keys.
Category: Risk
How many attempts should a Retry Policy allow?
Use a small, bounded number (e.g., 3–5) with backoff, tuned to SLA and error characteristics.
Category: Design
How do retries interact with Circuit Breaker Pattern?
Circuit breakers stop futile retries when failure rates spike, allowing time for recovery and protecting the system.
Category: Concepts
How do I observe an effective Retry Policy?
Track retry counts, elapsed backoff, success after retry, and error types to tune parameters.
Category: Observability
What is a common mistake with Retry Policies?
Retrying too aggressively without backoff or jitter can create thundering herds and worsen outages.
Category: Mistakes
Should clients or servers implement Retry Policies?
Prefer clients, which can classify errors and backoff appropriately. Servers should be idempotent and provide clear error codes.
Category: Opinion
How do SLAs influence Retry Policies?
Stricter latency SLAs may limit attempts or backoff durations; availability SLAs may favor more retries with longer backoff.
Category: Requirements