API reference@evolu/commonSchedule › jitter

function jitter(
  factor?: number,
): <Output, Input>(
  schedule: Schedule<Output, Input>,
) => Schedule<Output, Input>;

Defined in: packages/common/src/Schedule.ts:663

Adds randomized jitter to delays.

Jitter helps prevent "thundering herd" when many clients retry simultaneously after a service recovers. The delay is randomized within a range:

  • factor = 0 — no jitter (original delay)
  • factor = 0.5 — delay varies ±50% (e.g., 1s becomes 500ms-1500ms)
  • factor = 1 — full jitter, delay varies 0-200% (e.g., 1s becomes 0-2s)

Example

// AWS-style full jitter
const awsStyle = jitter(1)(exponential("1s"));

// Conservative jitter (±25%)
const conservative = jitter(0.25)(exponential("1s"));