Integration Circuit Breakers
External APIs are the most common source of instability. Wrap every integration call in a circuit breaker to protect your system.
Pattern
Create a dedicated circuit breaker instance for each external service. This ensures that a failure in Stripe doesn't trigger the circuit breaker for Twilio.
// integrations/stripe.ts
import { CircuitBreaker } from '@lssm/lib.resilience/circuit-breaker';
const stripeBreaker = new CircuitBreaker({
failureThreshold: 10,
resetTimeoutMs: 60000,
});
export async function createCharge(amount: number) {
return stripeBreaker.execute(() => stripe.charges.create({ amount }));
}