F'sistemi distribwiti, l-ċills jifšlu. Ir-retries b'backoff jirreküperaw minn żbalji temporanji; circuit breaker iwaqqfek milli tħebbeż dipendenza li verament down. Huma komplemantarji: erġa' ħaġċa l-ħajwa, aqbad fuq l-outage.
F'sistemi distribwiti, l-ċills jifšlu. Ir-retries b'backoff jirreküperaw minn żbalji temporanji; circuit breaker iwaqqfek milli tħebbeż dipendenza li verament down. Huma komplemantarji: erġa' ħaġċa l-ħajwa, aqbad fuq l-outage.
Għal difetti temporarji (timeout, problemi network qosra, 503), erġa' ħaġċa — imma backoff exponenzjali u żid jitter biex ir-retries jinqsmu minflok jinqabdu f'gregge tandil.
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
Avviż kritiċi:
Circuit breaker itrackja l-fardel għal dipendenza u, wara soglia, infetaħ — jifšal mgliegħ (jew jirritorna fallback) minflok jħadd servizz mejjet. Wara cooldown jinqala' semi-open biex jinvestiga r-rikupru.
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
Bingħajr dawn, dipendenza ta' falliment waħda tieħu l-caller għall-down: ir-requests jakkumulaw fuq timeout, ir-retries jamplifikaw il-load, u l-falliment jinkaskad fuq servizzi. Exponential backoff b'jitter jirkupera minn ħajwa mingħajr retry storm; kapping u idempotency iżommu r-retries sikuri; u circuit breaker isseħħ idda mal-ħamrija ta' risorsi fuq dipendenza mejja u tagħtihom spazju biex jirkupraw. Flimkien jbiddlu falliment ta' dipendenza f'avveniment kontnut u auto-healing.