Resilient
Responsive even inside failure
“The system stays responsive in the face of failure.” – Reactive Manifesto
When to use
Critical systems.
Why it matters
- Continuity: Failures are contained. One component crash shouldn’t take down the whole app.
Signs of Violation
- Uncaught exceptions bubbling to the top and crashing the process.
- “Cascading Failure” (Service A fails -> Service B waiting fails -> System crash).
Explanation
Problem
Errors trigger chains of doom.
Solution
Replication, containment, isolation, and delegation. Failures are handled within the component context.
Real world analogy
Bulkheads in a ship. If the hull is breached in one section, the water is contained there. The ship floats. Without bulkheads, the whole ship sinks.
Pros and Cons
| Pros | Cons |
|---|---|
Comparison
- Fault Tolerance: Similar concept.
Code example
Typescript
Bad (Violation)
Good (Adherence)
PHP
Good (Adherence)