Expand description
Circuit Breaker Pattern
Prevents cascade failures by detecting and isolating unhealthy kernels.
§States
- Closed: Normal operation, requests pass through
- Open: Failures exceeded threshold, requests fail fast
- HalfOpen: Testing if service has recovered
§Example
ⓘ
use rustkernel_core::resilience::circuit_breaker::{CircuitBreaker, CircuitBreakerConfig};
let config = CircuitBreakerConfig::default()
.failure_threshold(5)
.reset_timeout(Duration::from_secs(30));
let cb = CircuitBreaker::new("graph/pagerank", config);
match cb.execute(|| async { /* kernel execution */ }).await {
Ok(result) => println!("Success: {:?}", result),
Err(ResilienceError::CircuitOpen { .. }) => println!("Circuit is open"),
Err(e) => println!("Error: {:?}", e),
}Structs§
- Circuit
Breaker - Circuit breaker for a kernel
- Circuit
Breaker Config - Circuit breaker configuration
- Circuit
Breaker Stats - Circuit breaker statistics
Enums§
- Circuit
State - Circuit breaker state