Initial Release
Backoff library uses an exponential backoff algorithm to backoff between retries.
What makes this different from other backoff libraries?
Simple, by automatically calculating the exponential factor between the min and max backoff times; which properly tunes to your desired values.
Provides an optional AutoTune function which will adjust the min backoff duration based upon successful backoff duration retries.
Why AutoTune?
For long running services that hit external services such as writing to a DB or that hit a 3rd party API's, where successful attempts backoff durations can vary over time as load changes. Additionally by using AutoTune it should provide an automatic jitter when multiple copies of a service are running.