customizable retrying of fallible operations
A number of attempts
A non-blocking timer that allows a fixed-delay or exponential-backoff retry, that lives alongside some operation to retry.
Strategy to employ when retrying
Result of [RetryTimer.what_should_i_do].
RetryTimer.what_should_i_do