computeFailureBackoff static method

Duration computeFailureBackoff({
  1. required int attempt,
  2. required Duration cap,
})

Computes the exponential backoff delay capped at cap.

Uses Symphony's failure-driven formula: min(10s * 2^(attempt-1), cap). Visible for testing.

Implementation

static Duration computeFailureBackoff({
  required int attempt,
  required Duration cap,
}) {
  final clampedAttempt = attempt.clamp(1, 30);
  final base = 10000 << (clampedAttempt - 1);
  return Duration(
    milliseconds: base > cap.inMilliseconds ? cap.inMilliseconds : base,
  );
}