Skip to content
Calcrivo

Webhook Retry Calculator

Size an exponential backoff schedule with jitter: total retry window, delivery probability and the retry storm your consumer will see.

Inputs

seconds
×
attempts
seconds
%
%
events

Total Retry Window

0.35hours

Expected Window With Jitter

0.18hours

Delay Before the Final Attempt

640.0seconds

Cumulative Delivery Probability

99.935%

Peak Retry Rate With Jitter

1,000.0events/s

Assessment

Schedule is well balanced

Step by step

  1. Values used

    Base delay before the first retry = 5 seconds; Backoff multiplier = 2 ×; Maximum attempts = 8 attempts; Delay cap per attempt = 3,600 seconds; Full-jitter range applied to each delay = 100 %; Per-attempt delivery success = 60 %; Events failing in the same instant = 5,000 events

  2. Webhook Retry

    With base delay b, multiplier m and cap c, the delays are min(b·m^i, c); their sum is the geometric series b(m^k − 1)/(m − 1) over the k attempts before the cap, plus (attempts − k) × c afterwards.

  3. Jitter and delivery

    Full jitter halves the expected delay, so the expected window is the nominal window × (1 − jitter ÷ 2); cumulative delivery probability = 1 − (1 − p)^attempts.

  4. Total Retry Window

    = 0.35 hours

  5. Expected Window With Jitter

    = 0.18 hours

  6. Delay Before the Final Attempt

    = 640.0 seconds

  7. Cumulative Delivery Probability

    = 99.935

  8. Peak Retry Rate With Jitter

    = 1,000.0 events/s

  9. Assessment

    = Schedule is well balanced

How it works

Exponential backoff grows geometrically until it hits the cap and then becomes linear, so the total window is a geometric sum plus a flat tail. Full jitter randomises each delay uniformly, which halves the expected wait and — more importantly — spreads a synchronised retry storm out over the delay window instead of concentrating it in one second. A retry schedule without jitter is a self-inflicted denial of service on the consumer: every failed delivery retries in lockstep, so the recovering endpoint is knocked over again by your own traffic.

Formulas

Webhook Retry

With base delay b, multiplier m and cap c, the delays are min(b·m^i, c); their sum is the geometric series b(m^k − 1)/(m − 1) over the k attempts before the cap, plus (attempts − k) × c afterwards.

b
Base delay before the first retry
m
Backoff multiplier
c
Per-attempt delay cap
k
Attempts made before the cap is reached

Jitter and delivery

Full jitter halves the expected delay, so the expected window is the nominal window × (1 − jitter ÷ 2); cumulative delivery probability = 1 − (1 − p)^attempts.

jitter
Randomised share of each delay
p
Per-attempt success probability

Frequently Asked Questions

How is Webhook Retry calculated?

With base delay b, multiplier m and cap c, the delays are min(b·m^i, c); their sum is the geometric series b(m^k − 1)/(m − 1) over the k attempts before the cap, plus (attempts − k) × c afterwards. Exponential backoff grows geometrically until it hits the cap and then becomes linear, so the total window is a geometric sum plus a flat tail. Full jitter randomises each delay uniformly, which halves the expected wait and — more importantly — spreads a synchronised retry storm out over the delay window instead of concentrating it in one second.

Why does Webhook Retry matter?

A retry schedule without jitter is a self-inflicted denial of service on the consumer: every failed delivery retries in lockstep, so the recovering endpoint is knocked over again by your own traffic.

What values do I need to enter?

This calculator takes 7 inputs: Base delay before the first retry, Backoff multiplier, Maximum attempts, Delay cap per attempt, Full-jitter range applied to each delay, Per-attempt delivery success, Events failing in the same instant. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

How many attempts should a webhook get?

Enough to ride out a normal outage and no more — typically six to ten attempts spread over a few hours to a day, then a dead-letter queue with an operator-visible replay. Retrying for a week hides the failure, ties up delivery workers and eventually replays events the consumer no longer has context for.

You might also need