Module circuit_breaker

Module circuit_breaker 

Source
Expand description

Circuit Breaker - Prevents cascade failures per domain

Implements the circuit breaker pattern to protect against failing domains:

  • Closed: Normal operation, requests pass through
  • Open: Domain is failing, requests are rejected immediately
  • Half-Open: Testing if domain recovered

§Usage

let breaker = CircuitBreaker::new(CircuitBreakerConfig::default());
 
// Before making a request
if !breaker.allow_request("example.com") {
    return Err(Error::CircuitOpen);
}

// After request
match result {
    Ok(_) => breaker.record_success("example.com"),
    Err(e) => breaker.record_failure("example.com"),
}

Structs§

CircuitBreaker
Circuit breaker for multiple domains
CircuitBreakerConfig
Circuit breaker configuration
CircuitBreakerStats
Circuit breaker statistics

Enums§

CircuitState
Circuit state