Tag: resilience
Browse 25 practical software engineering resources tagged with "resilience". Discover code recipes, design patterns, documentation templates, and in-depth guides to help you build, deploy, and maintain production-ready solutions involving resilience. Each resource is written for engineers who ship real systems, with copy-paste examples and practical trade-offs.
Resilience Patterns
Resilience is the ability of a system to recover from failures and continue operating. It is built from retries, circuit breakers, bulkheads, fallbacks, and graceful degradation rather than a single technique.
The patterns and recipes below cover circuit breakers, timeouts, retries with backoff, bulkheads, load shedding, and failover. Each resource shows how to limit blast radius and protect users from cascading failures.
Every resource includes clear explanations, copy-paste code, and practical warnings. Use them to make informed decisions, avoid production pitfalls, and speed up your delivery. If you are just getting started, read the beginner-friendly articles first; if you are experienced, jump straight to the advanced patterns and architecture guides. New resources are added regularly, so bookmark this page and check back for the latest patterns.
Retry Backoff: Budgets, Deadlines, and Library Configs
Implement resilient retry strategies with exponential backoff, jitter, and circuit breaker...
Chaos Engineering
Build resilient systems by intentionally injecting failures and observing how your distributed...
Retry Logic with Exponential Backoff
How to implement resilient retry logic with exponential backoff and jitter for transient failures...
Dead Letter Queues: Setup for SQS, RabbitMQ & Kafka
Configure dead letter queues on SQS, RabbitMQ, and Kafka: redrive policies, dead-letter exchanges,...
LLM Fallback Pattern
Fall back to alternative LLM providers or models when the primary fails. Handle rate limits,...
Back-Pressure Pattern
Prevent upstream systems from overwhelming downstream consumers by propagating flow-control signals...
Circuit Breaker Pattern in Python, JavaScript, and Java
Prevent cascading failures by stopping requests to failing services. An architectural pattern for...
Compensating Transaction Pattern
Undo the effects of a completed transaction by executing a counter-operation, enabling eventual...
Graceful Degradation Pattern
Degrade functionality instead of failing when dependencies are unavailable. Serve partial results,...
Retry Pattern
Retry an operation that has failed with transient errors, using configurable strategies like fixed...
Scheduler Agent Supervisor Pattern
Coordinate resilient job scheduling with a supervisor that monitors agents, restarts failures, and...
Shed Load Pattern
Drop requests proactively under extreme load to protect the system. Reject excess traffic before it...
Timeout Pattern
Prevent operations from hanging indefinitely by enforcing a maximum execution time. A resilience...
Circuit Breaker with Monitoring
How to expose circuit breaker state as metrics for observability. Covers Prometheus integration,...
Bulkhead Pattern: Isolate Resources to Limit Blast Radius
Isolate resources per service to limit blast radius. Covers thread pool isolation, connection pool...
Circuit Breaker Half-Open
How to test service recovery with half-open circuit breaker state transitions. Covers closed, open,...
Failover: Switch to Standby on Primary Failure Detection
How to move traffic to a standby system when the primary fails. Covers active-passive,...
Graceful Shutdown: Drain In-Flight Requests Before Exit
How to drain in-flight requests before process exit. Covers signal handling, health check removal,...
Token Bucket Rate Limiter: Smooth Traffic with Token Buckets
How to implement token bucket rate limiting for API protection — bucket refill, burst handling,...
Retry with Jitter: Exponential Backoff and Random Jitter
How to retry failed operations with exponential backoff and random jitter. Covers full jitter,...