# Functions
ExponentialBackOff returns ever increasing backoffs by a power of 2.
ExponentialJitterBackOff returns ever increasing backoffs by a power of 2 with +/- 0-33% to prevent synchronized requests.
GetRandomValueFromInterval returns a random value from the following interval: [randomizationFactor * currentInterval, randomizationFactor * currentInterval].
JitterDuration keeps the +/- 0-33% logic in one place.
LinearBackOff returns increasing durations, each a second longer than the last.
LinearDoUntil will continuously run the giving function until no error is returned.
LinearJitterBackOff returns increasing durations, each a second longer than the last with +/- 0-33% to prevent synchronized requests.
LinearRangedJitterBackOff provides a back off value which will perform linear back off based on the attempt number and with jitter to prevent a thundering herd.
LinearRangeJitters returns a function which returns a new duration for increasing value of passed integer ranged within provided minimum and maximum time durations.
RandomizedJitters returns a function which returns a new duration for randomized value of passed integer ranged within provided initial time duration seed.
RangedExponential returns a function which returns a new duration for increasing value of passed integer ranged within provided minimum and maximum time durations.
RangeExponentialBackOff provides a back off value which will perform exponential back off based on the attempt number and limited by the provided minimum and maximum durations.