Enterprise engineering

How do I make an app reliable under failure?

Design around failure modes:

  • Timeouts and per-dependency budgets so one hung call can't use up every request slot
  • Bounded retries with exponential backoff and jitter, plus idempotency — avoid retry storms
  • Circuit breakers and bulkheads when repeated downstream failures would cascade
  • Graceful degradation: a cached public catalogue may stay visible while recommendations are down — but never serve stale payroll permissions
  • Overload protection: queues, concurrency limits, connection pool caps and shedding of non-critical work
  • Health: readiness and liveness probes, safe shutdown and deployment health checks

Then rehearse it: inject dependency failures in staging and confirm the app degrades the way you designed.

All guides