Ing sistem terdistribusi, kabeh perkara bakal gagal sawijining wektu. Pola resiliensi ngegawe kabar gagal tunggal ora menyebar dadi outage lengkap.
Ing sistem terdistribusi, kabeh perkara bakal gagal sawijining wektu. Pola resiliensi ngegawe kabar gagal tunggal ora menyebar dadi outage lengkap.
const breaker = new CircuitBreaker(callPaymentService, {
timeout: 3000, // fail the call after 3s
errorThresholdPercentage: 50, // open if >50% of calls fail
resetTimeout: 10000 // after 10s, try one request (half-open)
});
breaker.fallback(() => ({ status: 'queued' })); // graceful degradation
CLOSED ──(failures exceed threshold)──▶ OPEN
▲ │ (after resetTimeout)
│ (trial succeeds) ▼
└────────────── HALF-OPEN ◀──────────────┘
(one trial request)
[ pool A: 10 threads ] → payment calls
[ pool B: 10 threads ] → search calls
If search hangs, it drains pool B only — payments keep working.
Retry tanpa backoff nambah beban ing layanan sing wis susah (badai retry). Tansah nambah backoff, jitter, lan tutup retry.
Pola iki iku apa nglih siji-layanan kegagalan inevitable dadi fitur degraded tinimbang outage luas-bunder.
Iku gumana bareng: timeouts batas pamuliwa, circuit breakers mandheg palu layanan mati, bulkheads ngemot radius ledakan, lan retries pulih saka blips — ucapno siji lan kegagalan isih menyebar.