Graceful Degradation
When to Use Graceful Degradation
In Practice
How Graceful Degradation Comes Up in Interviews
Scenario
On amazon.com, a product page renders even when the recommendations service or 'customers also bought' service is timing out. What's the underlying technique?
Graceful degradation returns a useful partial response when a non-critical dependency fails, the page renders without the optional widget rather than 500ing the whole request.
Graceful degradation is what separates a resilient distributed system from a brittle monolith, every fanout call needs a fallback that lets the parent succeed without it. Amazon's product page is the canonical example: the title, price, and add-to-cart are critical; reviews, recommendations, 'customers also bought,' and shipping estimates are not. Each is wrapped in a timeout (often 100-200ms) and a fallback (empty list, cached snapshot, skeleton) so a 500 on any optional widget never bubbles up. The discipline is harder than it sounds, every downstream call needs an explicit answer to 'what do I show if this fails?' and most teams discover the gap only during an outage.