https://medium.com/@adamszpilewicz/timeouts-and-cancellation-in-async-rust-building-robust-services-2ef8c5c1b44e