About circuit-breaker-pattern
A reference skill for implementing circuit breakers in services that depend on external systems. It covers failure handling, fallbacks, monitoring, and language-specific examples.
Key features
- 01Circuit states and thresholds
- 02Fallback and timeout guidance
- 03Monitoring state changes
- 04TypeScript, Python, and Java guides
Use cases
- 01Protecting external API calls
- 02Handling microservice or database failures
- 03Limiting cascading failures
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill circuit-breaker-patternAfter installing, type/circuit-breaker-patternin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/circuit-breaker-with-monitoring.mdopossum-style-circuit-breaker-nodejs.mdpython-circuit-breaker.mdresilience4j-style-java.mdtypescript-circuit-breaker.mdscripts/validate-api.shtemplates/api-scaffold.yamlDetails
From the project READMECircuit Breaker Pattern
Table of Contents
Overview
Implement circuit breaker patterns to prevent cascading failures and provide graceful degradation when dependencies fail.
When to Use
- External API calls
- Microservices communication
- Database connections
- Third-party service integrations
- Preventing cascading failures
- Implementing fallback mechanisms
- Rate limiting protection
- Timeout handling
Quick Start
Minimal working example:
enum CircuitState {
CLOSED = "CLOSED",
OPEN = "OPEN",
HALF_OPEN = "HALF_OPEN",
}
interface CircuitBreakerConfig {
failureThreshold: number;
successThreshold: number;
timeout: number;
resetTimeout: number;
}
interface CircuitBreakerStats {
failures: number;
successes: number;
consecutiveFailures: number;
consecutiveSuccesses: number;
lastFailureTime?: number;
}
class CircuitBreaker {
private state: CircuitState = CircuitState.CLOSED;
private stats: CircuitBreakerStats = {
failures: 0,
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| TypeScript Circuit Breaker | TypeScript Circuit Breaker |
| Circuit Breaker with Monitoring | Circuit Breaker with Monitoring |
| Opossum-Style Circuit Breaker (Node.js) | Opossum-Style Circuit Breaker (Node.js) |
| Python Circuit Breaker | Python Circuit Breaker |
| Resilience4j-Style (Java) | Resilience4j-Style (Java) |
Best Practices
✅ DO
- Use appropriate thresholds for your use case
- Implement fallback mechanisms
- Monitor circuit breaker states
- Set reasonable timeouts
- Use exponential backoff
- Log state transitions
- Alert on frequent trips
- Test circuit breaker behavior
- Use per-dependency breakers
- Implement health checks
❌ DON'T
- Use same breaker for all dependencies
- Set unrealistic thresholds
- Skip fallback implementation
- Ignore open circuit breakers
- Use overly aggressive reset timeouts
- Forget to monitor
Comments
Markdown supported