Stability Patterns and Antipatterns
Central idea
Design every integration with the assumption that dependencies will slow down, fail, and recover imperfectly.
Summary
Production failures rarely remain isolated. A slow dependency consumes threads and connections, creates queues, and triggers cascading failure across otherwise healthy services. Unbounded results, retry storms, and mismatched capacities amplify the damage. Stability patterns deliberately limit blast radius: timeouts stop endless waiting, circuit breakers halt doomed calls, bulkheads isolate capacity, and fail-fast checks reject work that cannot succeed. Systems should also reach a steady state through bounded resources, routine cleanup, and operations that do not depend on manual rescue.
Key ideas
Integration points are fault lines
Every network call crosses independent timing, capacity, deployment, and failure domains.
Bound waiting and work
Timeouts, queue limits, response limits, and budgets keep one failure from consuming the whole system.
Contain before recovering
Isolation preserves enough healthy capacity for graceful degradation and later repair.
Core stability patterns
Timeouts and deadlines.
Circuit breakers.
Bulkheads and bounded pools.
Fail fast and degrade gracefully.
Why it matters now
AI can implement happy paths quickly. Reliability still depends on engineers imagining adverse interactions and making failure boundaries explicit.
Continue with the original
This short version preserves the main argument. Follow the source for the complete talk, article, or book.