computeFailureBackoff static method
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,
);
}