वितरित प्रणालीमध्ये, कॉल अयोग्य ठरतात. बॅकऑफसह पुन्हा प्रयत्न क्षणिक त्रुटींमधून पुनरुद्धार करतात; सर्किट ब्रेकर आपल्याला अवलंबन जो खरोखर बंद आहे त्यावर हातोडे मारणे थांबवतो. ते पूरक आहेत: धक्कावर पुन्हा प्रयत्न करा, विच्छेदनावर तोडा.
वितरित प्रणालीमध्ये, कॉल अयोग्य ठरतात. बॅकऑफसह पुन्हा प्रयत्न क्षणिक त्रुटींमधून पुनरुद्धार करतात; सर्किट ब्रेकर आपल्याला अवलंबन जो खरोखर बंद आहे त्यावर हातोडे मारणे थांबवतो. ते पूरक आहेत: धक्कावर पुन्हा प्रयत्न करा, विच्छेदनावर तोडा.
क्षणिक अपयशांसाठी (timeout, संक्षिप्त नेटवर्क समस्या, 503), पुन्हा प्रयत्न करा — परंतु घातांकीय बॅकऑफ करा आणि jitter जोडा जेणेकरून पुन्हा प्रयत्न सिंक्रोनाइজ न होता पसरतील.
attempt 1 → wait ~1s (+ random jitter)
attempt 2 → wait ~2s (+ random jitter)
attempt 3 → wait ~4s (+ random jitter)
→ cap at maxRetries (e.g. 3) and a max delay → don't retry forever
मुख्य सावधानी:
सर्किट ब्रेकर अवलंबनाची विफलता ट्रॅक करतो आणि, थ्रेशोल्डनंतर, उघडतो — मृत सेवेला कॉल करण्याऐवजी जलद अपयश (किंवा फॉलबॅक परत करा). शीतलता अवधीनंतर अर्ध-उघड होऊन पुनरुद्धार तपासा.
CLOSED → calls pass through; count failures
too many failures → trip → OPEN
OPEN → fail fast immediately (no call); start cooldown timer
cooldown elapsed → HALF-OPEN
HALF-OPEN → allow a few probe calls
success → CLOSED (recovered) ; failure → back to OPEN
Retry → transient, likely-to-succeed-soon errors (1 slow call)
Circuit breaker → repeated/sustained failures (the dependency is down)
→ use together: breaker prevents retries from piling onto a dead service
याशिवाय, एक अयोग्य अवलंबन कॉलरला खाली घेते: विनंत्या timeout वर जमा होतात, पुन्हा प्रयत्न भार वाढवतात आणि विफलता सेवांमध्ये पसरते. जिटर सह घातांकीय बॅकऑफ पुन्हा प्रयत्न वादळ न करता धक्ख्यांमधून पुनरुद्धार करतो; मर्यादा आणि idempotency पुन्हा प्रयत्न सुरक्षित ठेवतात; आणि सर्किट ब्रेकर मृत अवलंबनावर संसाधन वाया घालणे बंद करतो आणि त्याला पुनरुद्धारासाठी जागा देतो. एकत्रितपणे ते अवलंबन विफलता एक समाविष्ट, स्वयं-उपचार घटना मध्ये वळण करतात.