Overview of Resiliency Patterns
mainResiliency patterns are cloud design patterns used to reduce the damage caused by minor errors that can escalate into system-wide failures (the 'snowball effect'). These patterns are typically used in combination rather than in isolation to build robust distributed systems.
The 8 core resiliency patterns are:
- Timeout: Prevents a system from waiting indefinitely for a response.
- Retry: Attempts to re-execute a failed operation.
- Circuit breaker: Stops requests to a failing service to allow it to recover.
- Rate limiting: Controls the rate of incoming requests to prevent exhaustion.
- Load shedding: Drops excess requests when the system is overloaded.
- Bulkhead: Isolates failures by partitioning resources.
- Back pressure: Signals upstream components to slow down production when downstream components are overwhelmed.
- Let it crash: Allows a process to fail and be restarted by a supervisor to return to a clean state.