Sweaty Imposter

Graceful Degradation

TechniqueReliabilityMidSeniorUpdated
When a non-critical dependency fails, return a useful partial response instead of erroring the whole request.

When to Use Graceful Degradation

Composite responses where some fields are nice-to-have. Recommendations down → show the page without them. Search facets down → return results, drop facets.

In Practice

Amazon's product page shows the product even if reviews, recommendations, or 'also bought' services time out. Each component has a fallback (empty list, cached snapshot, or skeleton).

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.