Skip to main content

Crate breaker_machines

Crate breaker_machines 

Source
Expand description

BreakerMachines - High-performance circuit breaker implementation

This crate provides a complete circuit breaker implementation with:

  • Thread-safe event storage with sliding window calculations
  • State machine for circuit breaker lifecycle (Closed → Open → HalfOpen)
  • Monotonic time tracking to prevent NTP clock skew issues
  • Configurable failure thresholds and timeouts

§Example

use breaker_machines::CircuitBreaker;

let mut circuit = CircuitBreaker::builder("my_service")
    .failure_threshold(5)
    .failure_window_secs(60.0)
    .half_open_timeout_secs(30.0)
    .success_threshold(2)
    .on_open(|name| println!("Circuit {} opened!", name))
    .build();

// Execute with circuit protection
let result = circuit.call(|| {
    // Your service call here
    Ok::<_, String>("success")
});

// Check circuit state
if circuit.is_open() {
    println!("Circuit is open, skipping call");
}

Re-exports§

pub use builder::CircuitBuilder;
pub use bulkhead::BulkheadGuard;
pub use bulkhead::BulkheadSemaphore;
pub use circuit::CallOptions;
pub use circuit::CircuitBreaker;
pub use circuit::Config;
pub use circuit::FallbackContext;
pub use classifier::DefaultClassifier;
pub use classifier::FailureClassifier;
pub use classifier::FailureContext;
pub use classifier::PredicateClassifier;
pub use errors::CircuitError;
pub use storage::MemoryStorage;
pub use storage::NullStorage;
pub use storage::StorageBackend;

Modules§

builder
Builder API for ergonomic circuit breaker configuration
bulkhead
Bulkhead implementation for concurrency limiting
callbacks
Callback system for circuit breaker state transitions
circuit
Circuit breaker implementation using state machines
classifier
Failure classification for exception filtering
errors
Error types for circuit breaker operations
storage
Storage backends for circuit breaker events

Structs§

Event
A single event recorded by the circuit breaker

Enums§

EventKind
Event type for circuit breaker operations