Circuit Breaker — protection against cascading failures.
1import CircuitBreaker from "opossum";23const breaker = new CircuitBreaker(async () => {4 const response = await fetch("https://api.example.com/data");5 return response.json();6}, {7 timeout: 3000, // 3 seconds8 errorThresholdPercentage: 50,9 resetTimeout: 30000, // 30 seconds until retry10});1112breaker.on("open", () => console.log("Circuit opened!"));13breaker.on("halfOpen", () => console.log("Half-open"));14breaker.on("close", () => console.log("Circuit closed"));15breaker.on("fallback", () => console.log("Fallback"));1617// Usage18try {19 const data = await breaker.fire();20 console.log(data);21} catch (err) {22 console.error("Error:", err);23}
States:
Tools: