retryBackoff function

Duration retryBackoff(
  1. int attempt
)

Computes a backoff delay for the given attempt number (0-indexed).

Returns a duration with jitter: roughly 300ms * 2^attempt + random jitter.

Implementation

Duration retryBackoff(int attempt) {
  final baseMs = 300 * (1 << attempt);
  final jitterMs = (baseMs * 0.2).toInt();
  final random = DateTime.now().microsecondsSinceEpoch % jitterMs;
  return Duration(milliseconds: baseMs + random);
}