20 lines
802 B
Rust
20 lines
802 B
Rust
//! A service combinator that sends requests to a first service, then retries
|
|
//! processing on a second fallback service if the first service errors.
|
|
//!
|
|
//! Fallback designs have [a number of downsides][aws-fallback] but may be useful
|
|
//! in some cases. For instance, when using batch verification, the `Fallback`
|
|
//! wrapper can be used to fall back to individual verification of each item when
|
|
//! a batch fails to verify.
|
|
//!
|
|
//! TODO: compare with similar code in linkerd.
|
|
//!
|
|
//! [aws-fallback]: https://aws.amazon.com/builders-library/avoiding-fallback-in-distributed-systems/
|
|
|
|
pub mod future;
|
|
mod service;
|
|
|
|
pub use self::service::Fallback;
|
|
|
|
/// A boxed type-erased `std::error::Error` that can be sent between threads.
|
|
pub type BoxedError = Box<dyn std::error::Error + Send + Sync + 'static>;
|