Note: this topic is covered in more depth and more currently in Timeout, Retry and Circuit Breaker: correct order, configuration and common mistakes.
In critical environments, systems don't just have to work: they have to stay standing when everything around them starts to fail. That's where resilience patterns come in: design decisions that protect the platform in real scenarios, not in perfect diagrams.
What is a resilience pattern?
It's a proven way to limit the impact of errors, prevent them from spreading, and allow the system to recover. It doesn't depend on a specific language or cloud; it's a way of thinking.
Key patterns I use and explain
Circuit Breaker
Prevents a failed service from dragging down the entire platform by cutting calls when repeated failures are detected.
Retry with Backoff
Retries failed calls in a controlled manner, without generating traffic storms or overloading services.
Defined Timeouts
Avoids endless waits and frees resources when a response simply isn't going to arrive.
Bulkhead
Separates resources and capabilities so that a saturated service doesn't impact the rest of the system.
Fallbacks
Maintains a reduced but useful version of the service when the full version isn't possible.
Queues & Async
Decouples critical processes to absorb peaks, avoid blocking and buy time during failures.
These patterns don't work in isolation: they share the same time and capacity budget. How to compose them without amplifying an outage —the right order, the retry budget, and how to combine timeout, retry, and Circuit Breaker— is covered in the dedicated guide.
Resilience in production, not in presentations
A pattern is useless if it only exists in documents. It has to be:
- Implemented in the code.
- Reflected in the architecture.
- Visible in metrics and dashboards.
- Aligned with how the team operates incidents.
In production, resilience means an error doesn't become a major incident, and an incident doesn't become a crisis.
Designing for everything to work "when nothing fails" is easy. Designing to keep operating when things fail is what differentiates a serious platform.