26 lines
864 B
Rust
26 lines
864 B
Rust
//! Shared HTTP circuit breaker.
|
|
//!
|
|
//! Sliding-window-with-min-samples algorithm: the breaker trips when
|
|
//! `sample_count >= min_samples AND error_rate >= error_rate_threshold`
|
|
//! over the live window. Server- and client-side consumers run the same
|
|
//! state machine and pick a preset via [`BreakerConfig::server`] or
|
|
//! [`BreakerConfig::client`].
|
|
|
|
mod breaker;
|
|
mod clock;
|
|
mod config;
|
|
mod observer;
|
|
mod registry;
|
|
mod retry_policy;
|
|
mod state;
|
|
mod window;
|
|
|
|
pub use breaker::CircuitBreaker;
|
|
#[cfg(any(test, feature = "test-hooks"))]
|
|
pub use clock::MockClock;
|
|
pub use clock::{Clock, SystemClock};
|
|
pub use config::{BreakerConfig, default_failure_codes, parse_failure_codes};
|
|
pub use observer::{NoopObserver, Observer};
|
|
pub use registry::CircuitBreakerRegistry;
|
|
pub use retry_policy::{Disposition, RetryPolicy};
|
|
pub use state::{BreakerOpen, BreakerState, Outcome};
|