Graceful degradation
When a system cannot do everything, switch off the costly features first, so the core of the product keeps working.
Graceful degradation drops optional work on purpose when the system is under stress, so users keep the part that matters.
Use it when#
Some features cost far more than they earn, such as recommendations, exports or reports.
A spike or a failing dependency threatens the whole page.
You can show something useful without the feature, like a default or a cached copy.
How it works#
Each feature gets a rank, and under pressure the system turns off the highest-cost, lowest-need ones first. A shop page can render without the recommendation panel, so when the recommender is slow, the page skips it after a short deadline. Netflix shows a generic row when personalization is down. The user sees less, not nothing.
What it costs#
Someone has to decide which features may go, and that is a product call, not an engineering one. Degraded paths need testing, because a path that has never run tends to fail the first time it matters. A degraded system can also look healthy while it quietly loses value, so count how often it runs.
In Quorum#
Drag to pan. Hold Ctrl or Cmd and scroll to zoom.
| Where | Setting | Value | Why |
|---|---|---|---|
| App Server | Instance size | small | Small is too little for these Users, so the App Server runs past its limit. |
| App Server | Overload: Drop dearest | On | Above its load line the App Server turns off the kinds that cost the most CPU, so the cheap ones keep their latency. |
| Database | Instance size | xlarge | Large enough that the App Server is the one that overloads. |
Research this Design needs: Continuous delivery, Feature flags, Graceful degradation.
Drop dearest sits under Overload on an App Server. Past its load line, the App Server drops the request kinds that cost the most CPU first, so the cheap kinds keep their latency. Against Load shedding, which drops the lowest-value kinds, this keeps more of the Users happy when the expensive kinds are the cause. Check both captions: the Apdex is higher here and the errors fall, though the dropped kinds still count as errors. If a Node has both, it degrades first. Graceful degradation needs Feature flags. The glossary defines graceful degradation.