All glossary terms
Verify

Graceful degradation

Graceful degradation is the design property of a system that, when a dependency fails or saturates, returns reduced functionality rather than no functionality. A graceful-degradation example: a product page that loads with cached recommendations when the recommendation service is down, rather than 500-ing the entire page.

Graceful degradation is the dual of fault tolerance: fault tolerance prevents failure from being visible; graceful degradation prevents failure from being total. Patterns include feature flags that disable expensive functionality under load, stale-while-revalidate caching that returns last-known-good data when the source is unavailable, fallback to a simpler algorithm when the primary model times out, and asynchronous queueing that absorbs write spikes the database can't sustain. The wrong default is to fail closed everywhere — a strict 'always show fresh data or nothing' policy turns small dependency hiccups into total outages. The right default is application-specific: a banking transfer should fail closed; a product recommendation should fail open.

Related terms