విభజిత వ్యవస్థలో, అన్నీ చివరికి విఫలమవుతుంది. నిరోధక నమూనాలు ఒక్క వైఫల్యం పూర్తి విఘ్నకు కాస్కేడ్ చేయకుండా నిరోధిస్తాయి.
విభజిత వ్యవస్థలో, అన్నీ చివరికి విఫలమవుతుంది. నిరోధక నమూనాలు ఒక్క వైఫల్యం పూర్తి విఘ్నకు కాస్కేడ్ చేయకుండా నిరోధిస్తాయి.
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.
Backoff లేకుండా రిట్రైలు ఇప్పటికే చేసుకుంటున్న సేవపై భారం పెంచుతాయి (రిట్రై తుఫాను). ఎల్లప్పుడూ backoff, jitter, మరియు retry టోపీని జోడించండి.
ఈ నమూనాలు ఒక నిర్విభ్రాంత ఏక-సేవ వైఫల్యాన్ని సైట్-విస్తృతమైన విఘ్నకు బదులుగా క్షీణించిన లక్షణంగా మారుస్తాయి.
వాటిరు కలిసి పనిచేస్తాయి: timeouts ఎదురుకోవడం బంధిస్తుంది, circuit breakers చనిపోయిన సేవలకు సంసిద్ధులను ఆపివేస్తాయి, bulkheads విస్ఫోటన వ్యాసార్థాన్ని నిర్బంధిస్తాయి, మరియు retries బ్లిప్ల నుండి పునరుద్ధరిస్తాయి — ఏదైనా ఒకటి వదిలివేయండి మరియు వైఫల్యాలు ఇప్పటికీ కాస్కేడ్ చేస్తాయి.