Every external call needs a timeout, every timeout needs a fallback — resilience patterns for HTTP, databases, and third-party services
88
90%
Does it follow best practices?
Impact
85%
4.72xAverage score across 5 eval scenarios
Passed
No known issues
{
"instruction": "Implement circuit breaker pattern to stop calling dependencies that are down",
"relevant_when": "Agent builds a service that makes frequent calls to external APIs or services that could experience sustained outages",
"context": "When a dependency is down, continuing to send requests to it wastes resources, increases latency (waiting for timeouts), and prevents the dependency from recovering. The circuit breaker pattern tracks failures and, after a threshold is crossed, short-circuits to the fallback immediately without making the network call. After a cooldown period, it allows a probe request to check if the dependency has recovered. Each dependency should have its own circuit breaker so that one failing service does not affect calls to healthy services.",
"sources": [
{
"type": "file",
"filename": "skills/graceful-degradation/SKILL.md",
"tile": "tessl-labs/graceful-degradation@0.2.0"
}
],
"checklist": [
{
"name": "circuit-breaker-implemented",
"rule": "A circuit breaker mechanism exists (custom implementation or library like opossum/cockatiel) that tracks consecutive failures and stops calling a dependency after a failure threshold is reached",
"relevant_when": "Agent builds a service that makes repeated calls to external APIs that could experience sustained outages"
},
{
"name": "per-dependency-circuit-breaker",
"rule": "Each external dependency has its own circuit breaker instance, so one failing service does not prevent calls to healthy services",
"relevant_when": "Agent builds a service that calls multiple external APIs or services"
}
]
}