Module circuit_breaker

Module circuit_breaker 

Source
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§

CircuitBreaker
Circuit breaker for a kernel
CircuitBreakerConfig
Circuit breaker configuration
CircuitBreakerStats
Circuit breaker statistics

Enums§

CircuitState
Circuit breaker state