Graceful degradation అంటే ఒక డిపెండెన్సీ విఫలమైనప్పుడు, సిస్టం ఎర్రర్ రిటర్న్ చేయకుండా కోర్ ఫ్లో పని చేస్తూ ఉంటుంది కుదించిన లేదా పాక్షిక అనుభవం ఇవ్వడం ద్వారా. లక్ష్యం soft గా విఫలం అవ్వడం, hard గా విఫలం అవ్వకపోవడం: degraded పేజీ 500 కంటే మెరుగైనది.
Graceful degradation అంటే ఒక డిపెండెన్సీ విఫలమైనప్పుడు, సిస్టం ఎర్రర్ రిటర్న్ చేయకుండా కోర్ ఫ్లో పని చేస్తూ ఉంటుంది కుదించిన లేదా పాక్షిక అనుభవం ఇవ్వడం ద్వారా. లక్ష్యం soft గా విఫలం అవ్వడం, hard గా విఫలం అవ్వకపోవడం: degraded పేజీ 500 కంటే మెరుగైనది.
BAD (fail hard):
search() → backend timeout → throw → user sees HTTP 500 (whole page dead)
GOOD (fail soft):
result = search()
catch timeout → return cached_results OR empty + notice
page renders:
[ "Showing recent results — live search is temporarily unavailable." ]
+ cached listings, working nav, working checkout
→ user keeps browsing; core flow intact
డెడ్ పేజీ కంటే బదులుగా, యూజర్ cached ఫలితాలను మరియు చిన్న నోటిస్ను పొందుతారు, ఆ సమయంలో navigation మరియు checkout పని చేస్తూ ఉంటాయి. విఫలం ఒక feature కు పరిమితం చేయబడింది.
డిపెండెన్సీలు విఫలం అవుతాయి — third-party APIs, search clusters, recommendation services. Graceful degradation లేకుండా, ఏదైనా ఒక విఫలం పూర్తి అపసందు కు కాస్కేడ్ చేస్తుంది. Soft గా విఫలం అవ్వడానికి డిజైన్ చేయడం (cached/partial/default డేటా), non-critical paths ను flag ఆఫ్ చేయడం, timeouts తో fallbacks చేయడం, మరియు bulkheads తో విఫలాలను isolate చేయడం ఉత్పత్తిని పాక్షిక విఫలాల సమయంలో ఉపయోగకరంగా ఉంచుతుంది — ఇది చిన్న blip మరియు major incident మధ్య తేడా.