Skip to content

Circuit Breaker

States

stateDiagram-v2
    [*] --> Closed
    Closed --> Open: failures >= threshold
    Open --> HalfOpen: timeout
    HalfOpen --> Closed: probe success
    HalfOpen --> Open: probe failure
State Behavior
Closed Normal operation, requests pass through
Open All requests denied immediately
HalfOpen Allows one probe request

Enable

from drogue.core.config import DrogueConfig

config = DrogueConfig(
    circuit_enabled=True,
    circuit_failure_threshold=5,
    circuit_recovery_timeout=30.0,
)

Configuration

Option Default Description
circuit_enabled False Enable circuit breaker
circuit_failure_threshold 5 Failures before opening
circuit_recovery_timeout 30.0 Seconds before half-open

Standalone usage

from drogue.protection.circuit import CircuitBreaker

breaker = CircuitBreaker(failure_threshold=5, recovery_timeout=30.0)

# Check state
if breaker.state.value == "open":
    print("Circuit is open")

# Record outcomes
breaker.record_success()
breaker.record_failure()