I distribuerte systemer mislykkes anrop. Retries med backoff gjenopprettes fra forbigående feil; en circuit breaker hindrer deg fra å hamre på en avhengighet som virkelig er nede. De er komplementære: prøv igjen på slip, bryt på strømbrudd.
I distribuerte systemer mislykkes anrop. Retries med backoff gjenopprettes fra forbigående feil; en circuit breaker hindrer deg fra å hamre på en avhengighet som virkelig er nede. De er komplementære: prøv igjen på slip, bryt på strømbrudd.
For forbigående feil (timeouts, korte nettverksstyrter, 503s), prøv igjen — men gå tilbake eksponentielt og legg til jitter slik at forsøk sprer seg i stedet for å synkronisere til en thundering herd.
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
Kjølige advarsler:
En circuit breaker sporer feil til en avhengighet og, etter en terskel, reiser åpen — mislykkes raskt (eller returnerer en fallback) i stedet for å kalle en død tjeneste. Etter en cooldown går den half-open for å sondere utvinning.
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
Uten disse tar en mislykket avhengighet den som ringer ned med seg: forespørsler stokker opp på timeouts, retries forsterker belastningen, og feilen kaskader over tjenester. Eksponentiell backoff med jitter gjenoppretter fra slip uten en retry storm; capping og idempotency holder retries sikre; og circuit breakeren slutter å kaste bort ressurser på en død avhengighet og gir den rom til å komme seg. Sammen gjør de en avhengighetssvikt til en inneholdt, selvhelbreding hendelse.