I córas dáilte, teipeann ar gach rud sa deireadh. Stopann patrúin athchothromachta teip shingil ó fholuain isteach i mbréan iomlán.
I córas dáilte, teipeann ar gach rud sa deireadh. Stopann patrúin athchothromachta teip shingil ó fholuain isteach i mbréan iomlán.
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.
Retries gan backoff méadú ar an load ar sheirbhís atá ag streachailt cheana féin (stoirm retry). Cuir backoff, jitter agus caipín ar retry i gcónaí.
Is iad na patrúin seo atá ann a bhíonn ina n-athrú ar theip dhoshéanta aon-seirbhíse ó neamhchothrom fheidhme in ionad briseadh fúithi ar fud an tsuímh.
Oibreoidh siad le chéile: fágann timeouts faoi bhruachta an feitheamh, stopann circuit breakers bualadh na seirbhísí marbha, cuimseoidh bulkheads an ga spréachta, agus bíonn retries ag fáil ar ais ó neamhchothrom — fág ceann amháin ar an imeall agus foluaineoidh teipeanna fós.