advanced
Availability
Keep the service usable through redundancy, failover, graceful degradation, health checks, and dependency isolation.
Availability measures whether users can complete critical flows despite failures. Improve it with redundancy, health-checked failover, multi-AZ deployment, circuit breakers, and graceful degradation — serving cached or partial results when dependencies fail.
Express targets as nines (99.9%, 99.99%) tied to allowed downtime per month. Verify with synthetic probes and error budgets, not assumptions. Isolate dependencies so one slow payment provider does not hang checkout.
On interviews: translate 99.9% to downtime minutes, describe degradation for a recommendation service, and list redundancy in your design.
Common pitfalls: availability counted only at load balancer while app errors spike; no dependency timeouts; cascading failures without bulkheads.
The trade-off is flexibility versus complexity—know when the simpler path is enough.
Checklist:
- State availability SLO with user impact.
- Add redundancy and health-checked failover.
- Degrade non-critical features under stress.
- Isolate dependencies with timeouts and breakers.