Graceful Degradation

Definition

Design approach where a system continues to operate with reduced functionality when parts fail, rather than completely breaking.

Use Cases

Frequently Asked Questions

What's the difference between Graceful Degradation and Fault Tolerance?
Fault tolerance aims to keep the full service working even when something fails (often by using redundancy and automatic failover). Graceful degradation accepts that some parts may fail or be overloaded, and focuses on keeping the system usable by reducing non-essential features (for example, serving cached data, disabling recommendations, or limiting image quality) instead of going down entirely.
When should I use Graceful Degradation?
Use it when you have clear 'must-work' core functions (like login, checkout, or video playback) and optional features (like recommendations, analytics, or advanced search filters). It’s especially useful for systems with external dependencies, variable traffic, or strict uptime needs. Start by identifying critical user journeys, then define fallback behaviors for each dependency (cache, default response, simplified UI, or temporary feature disablement).
How much does Graceful Degradation cost?
There is no fixed price because it’s a design approach. Costs usually come from extra engineering effort and from the infrastructure that enables fallbacks: redundancy (multi-AZ/region), caching layers, queues, feature-flag platforms, observability, and capacity headroom. Graceful degradation can also reduce costs during incidents by preventing cascading failures and limiting expensive retries or overload.

Category: software

Difficulty: intermediate

Related Terms

See Also