Graceful Degradation
ELI5 — The Vibe Check
Graceful degradation means your app keeps working with reduced functionality when something breaks. Recommendation engine down? Show popular items instead. Payment service slow? Queue the order. It's better to limp than to crash completely.
Real Talk
Graceful degradation is a design principle where a system continues operating with reduced functionality when components fail. Instead of returning errors, the system falls back to cached data, default values, simplified responses, or alternative services. It requires identifying critical vs. non-critical functionality and implementing fallback paths for each potential failure point.
Show Me The Code
async function getProductRecommendations(userId) {
try {
return await recommendationService.getPersonalized(userId);
} catch (err) {
logger.warn('Recommendation service down, using fallback');
return await cache.get('popular-products')
|| DEFAULT_RECOMMENDATIONS;
}
}
When You'll Hear This
"The site still works without the recommendation engine — it just shows bestsellers instead." / "Design for graceful degradation so non-critical failures don't take down the whole page."