Dağıtık sistemlerde çağrılar başarısız olur. Backoff ile retry mekanizması geçici hataları kurtarır; circuit breaker sizi gerçekten çökmüş bir bağımlılığı ezmeye karşı korur. Birbirini tamamlar: geçici hatalardan geri kurtul, kesintide aç.
Dağıtık sistemlerde çağrılar başarısız olur. Backoff ile retry mekanizması geçici hataları kurtarır; circuit breaker sizi gerçekten çökmüş bir bağımlılığı ezmeye karşı korur. Birbirini tamamlar: geçici hatalardan geri kurtul, kesintide aç.
Geçici başarısızlıklar için (timeout, kısa ağ kesintileri, 503'ler), retry yapın — ancak exponential olarak backoff yapın ve jitter ekleyin böylece retry'lar yayılır ve senkronize bir thundering herd'e dönüşmez.
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
Önemli dikkat noktaları:
Bir circuit breaker bir bağımlılığa yapılan başarısızlıkları izler ve threshold'dan sonra açık hale gelerek — hızlı bir şekilde başarısız olur (veya fallback döndürür) ölü bir servise çağrı yapmak yerine. Bir cooldown'dan sonra kurtarılmayı araştırmak için half-open durumuna gider.
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
Bunlar olmadan başarısız olan bir bağımlılık çağıranı da onunla birlikte çökertirir: request'ler timeout'a yığılır, retry'lar yükü artırır ve hata servisler arasında yayılır. Jitter ile exponential backoff geçici hataların geri kurtarılmasını sağlar retry fırtınası olmadan; cap ve idempotency retry'ları güvenli tutar; ve circuit breaker ölü bir bağımlılık üzerinde kaynak israfını durdurur ve onun kurtarılması için yer açar. Birlikte, bir bağımlılık başarısızlığını kontrollü, kendini iyileştiren bir olaya dönüştürürler.