• Full-jitter backoff: attempt n waits somewhere in [ceiling/2, ceiling).

    Deterministic backoff has every client in a fleet reconnecting in the same millisecond after a proxy restart, which knocks the recovering server back down. random is a parameter so a test gets an exact number.

    Parameters

    • attempt: number
    • opts: { baseDelayMs: number; jitter?: boolean; maxDelayMs: number }
    • random: () => number = Math.random

    Returns number