tower-fault 0.0.5

Tower layers for fault injection
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use lambda_http::{service_fn, tower::ServiceBuilder, Error, IntoResponse, Request};
use tower_fault::latency::LatencyLayer;

#[tokio::main]
async fn main() -> Result<(), Error> {
    let handler = ServiceBuilder::new()
        // Add a LatencyLayer with a 50% probability of injecting
        // 200 to 500 milliseconds of latency.
        .layer(LatencyLayer::new(0.5, 200..500))
        .service(service_fn(my_handler));

    lambda_http::run(handler).await?;
    Ok(())
}

async fn my_handler(_event: Request) -> Result<impl IntoResponse, Error> {
    Ok("Hello, world!")
}