Problem
Modern pages and APIs depend on many services, and treating every dependency as mandatory means a failure in a minor feature takes down the core experience. Users prefer a simpler page to an error page.
Also known as: fallback, partial-availability
Keep delivering reduced but useful functionality when dependencies fail instead of failing the whole request.
Modern pages and APIs depend on many services, and treating every dependency as mandatory means a failure in a minor feature takes down the core experience. Users prefer a simpler page to an error page.
Graceful degradation is the deliberate design of lower-quality service levels. The system decides in advance what to drop, substitute, or simplify as dependencies become unavailable.
List the features of a request and rank them. Critical features fail the request; optional ones fall back.
product page
price, stock critical -> fail request
reviews optional -> cached copy, else hide
recommendations optional -> global bestsellers
personalization optional -> default layout
Each optional call has its own short timeout and breaker. When it trips, the handler returns the fallback and sets a degraded marker used for metrics and, where honest, UI hints. Recovery is automatic as the breaker closes.
Low, cached or static fallbacks
Medium, test and monitor fallback paths
Medium, many states to reason about
Fallback path untested and fails when first used
Degraded mode never exits after recovery
Fallback depends on the same failed component