📨
🧪 Simulate
LV2 · Toolooo Standard
Explore → See → Understand → ActUnderstand it. Feature Level describes the depth of the tool experience.

Webhook Delivery Simulator

See how failures, retries, and duplicate events affect webhook delivery and processing.

EngineeringBackendAPIWebhooksReliability

Delivered once ≠ processed once

Watch one event become several attempts, then see which attempts repeat a business action.

8 events/s
40%
3 after the initial try
45s
1.00s

After a failed response or timeout, wait 1.00s → 2.00s → 4.00s. The event-age limit can stop the sequence earlier.

Idempotent HandlerOne atomic effect per event ID

9 extra effects in this run. Delivery attempts and acknowledgement timing stay the same in this comparison.

Timeouts, duplicate copies, retry age & recovery
1000ms
250ms
5% of events
60s from event creation
20s → 0% failures
What happened
9 extra side effects from repeat deliveries
Why
A retry or extra provider copy can reach the same event more than once. Without an atomic idempotency check, every successful handler completion can repeat the business action.
Try
Turn on Idempotent Handler to compare. Where repeated actions are harmful, consider an atomic event-ID check tied to the side effect and a suitable retention period.

Snapshot at 45s

Original events
360
Unique event IDs generated
Acknowledged events
355
98.6% with a timely 2xx
Retry policy exhausted
4
4 retry-limit · 0 age-limit
Still pending
1
In flight, queued or awaiting expiry
Total attempts
469
92 retries · 17 extra copies
2xx acknowledgements
364
Successful delivery attempts
Failed attempts
104
104 5xx · 0 timeouts
Attempts in flight
1
No response or timeout yet

Original events = acknowledged + exhausted + pending. Attempts = timely 2xx + failed responses + timeouts + in flight. Traffic continues through the chosen duration, so recent events may still be pending.

Same deliveries, different side effects

Idempotency OFF · selected364 effects · 9 repeated
Idempotency ON355 effects · 0 repeated

First effect + repeated effect. Both rows use exactly the same seeded attempt outcomes. Suppression assumes an atomic check and commit; it does not model faster duplicate responses.

Unique events processed
355
At least one completed side effect
Repeat deliveries
109
All arrivals after an event’s first
Extra side effects
9
Processed, no timely ack
0
0 late 2xx responses ignored

Events awaiting provider acknowledgement

0714Receiver recovers0.0s11.3s22.5s33.8s45.0s
Peak pending
14
Delayed acknowledgements
61
Arrived after the initial latency
Average time to ack
0.62s
Among acknowledged events only

The line includes in-flight attempts and waits for retries. It falls when an event is acknowledged or its policy is exhausted. This is a delivery backlog, not a receiver-capacity queue.

Inspect event #1

#1 of 360
Provider creates
#1 at 0.00s
Receiver sees
2 attempts
Provider status
acknowledged
Business effect
1 completed
Initial5xx responseRetry 12xx acknowledged+0.00s+0.75s+1.50s

● Provider decision · ◆ Receiver completion · dashed segment = processing continues after timeout. Times on the chart are relative to this event’s creation.

Initial · sent at 0.00s
5xx response at 0.25s
Failed before a side effect at 0.25s.
Retry 1 · sent at 1.25s
2xx acknowledged at 1.50s
First side effect at 1.50s.
Model assumptions & limits
  • Fixed seeded draws make each scenario repeatable. Failure probability is applied independently to each attempt until recovery; after recovery it is 0%. This is a sample, not a specific provider forecast.
  • Events arrive evenly; the receiver has unlimited concurrency. Every attempt takes the selected handler latency and either fails before an effect or completes successfully.
  • A successful completion returns 2xx. If it arrives after the provider timeout, its effect can still commit but that late response does not cancel retries.
  • Idempotency atomically permits one effect per event ID, including concurrent completions. It has no expiration, storage failure or timing overhead here.
  • Extra-copy probability schedules at most one additional provider copy 1 second after creation, within the age limit. That copy has no retry chain. A timely acknowledgement can cancel queued main retries, but cannot undo in-flight work.
  • Retry age limits new attempts; already-started attempts can complete later. Backoff is capped at 60 seconds per delay. Pending events are not assumed lost at the simulation end.
  • At most 6,000 original events, 6 retries per event and one extra copy are simulated locally. The backlog line samples roughly once per second; its peak is calculated from exact event transitions.

Understand Webhook Delivery Simulator

What this tool helps you understand

Explore a deterministic webhook delivery model with receiver failures, timeouts, retry delays, recovery, and idempotency. Inspect event timelines and compare acknowledged deliveries with actual processing to understand retries, duplicate side effects, and unresolved work.

When to use it

Use Webhook Delivery Simulator when engineering, backend, and api work raises questions about webhook simulator, webhook retries, and idempotency and you need a concrete view before making the next move.

How to read the result

Compare the shape and direction of different scenarios. The useful signal is how the result changes when an input changes, rather than one isolated number.

Assumptions and limits

This deterministic model explains retries, acknowledgements, recovery, and idempotency. It does not deliver webhooks or reproduce every queue, timeout, and receiver behavior in a production system.