ExponentialBackoff
class ExponentialBackoff(val initialDelay: Duration = 100.milliseconds, val maxDelay: Duration = 10.seconds, val factor: Double = 2.0, val jitter: Boolean = true) : BackoffStrategy
A backoff strategy that increases the delay between retries exponentially.
This strategy calculates the delay for each attempt using the formula: delay = min(maxDelay, initialDelay * factor^(attempt - 1))
If jitter is enabled, a random variance is added to the delay to prevent multiple clients from retrying simultaneously (the "thundering herd" problem).