Infrastructure · Primitives

ExponentialBackoff

Geometrically increasing capped retry delay

Definition

Mechanism

A Backoff delay policy whose unjittered delay grows geometrically across consecutive unsuccessful attempts: base_delay * multiplier^attempt_index. A configurable jitter factor may perturb the candidate delay to decorrelate concurrent attempts, after which the scheduled delay is clamped to max_delay. The caller defines retry eligibility, retry budget, and when the attempt sequence resets.

Invariants

  1. Scheduled delay is greater than zero and does not exceed max_delay.
  2. Before jitter, delay is non-decreasing with attempt_index until max_delay is reached.

Risks

Failure modes

  1. Synchronized retries when jitter is zero or correlated across callers.

  2. Excessive recovery delay when the multiplier or cap is too large.

  3. Retry amplification when callers use the delay policy without a retry budget.

Relationships

Builds on

References

Backoff

Delay subsequent attempts after failure or contention

Extends

Backoff

Delay subsequent attempts after failure or contention

Used by

Composes with

Mind

Retry

Classified re-attempt with backoff conditioned on failure type

Reference

Parameters

base_delay Duration, > 0
Delay before the first subsequent attempt
multiplier Float, (1, unbounded)
Geometric growth factor applied per unsuccessful attempt
max_delay Duration, [base_delay, unbounded)
Upper bound applied after optional jitter
jitter_factor Float, [0.0, 1.0]
Proportional randomization of the candidate delay

Identity

Ref
ExponentialBackoff#f5e5
Sema ID
sema:ExponentialBackoff#mh:SHA-256:f5e5ff69408a272184da86cf5698f6675e9dfe2aa47917616a695e117602b828
Ring
0
Tier
1
Updated
2026-11-11
Supersedes
  • sema:ExponentialBackoff#mh:SHA-256:a543a38722a0dfe96cf4bc7ccdaa615195ac058b5029651dc26d5cce1cd43128