Open source · Reliability experiments

Retry Jitter Lab

Compare how four retry policies shape load during a modeled outage and capacity-limited recovery. Run the public Python simulator locally and inspect its assumptions before applying anything to a real service.

Experimental · v0.1.0 · Python 3.10+ · MIT

Browse source and run locally · View v0.1.0 release

Run the public default scenario

Clone the repository and run these commands from its root with Python 3.10 or newer. The package installs from that checkout; it is not published on PyPI.

python -m pip install .
retry-jitter-lab --format json --output report.json

The default uses 600 clients, a 3-second outage, 120 requests per second of modeled recovery capacity, and seed 20260812. JSON includes each policy's configuration, summary and time buckets.

Read the model and retry semantics

What this one simulation reports

In this one default scenario, no jitter finishes 192 of 600 clients and reaches 1,560 offered requests per second during recovery. The jittered policies finish 598–600 clients and spread the recovery peak to 310–510 offered requests per second. A different seed, capacity, deadline or workload can change the ordering.

Default v0.1.0 synthetic scenario
PolicyCompletedExhaustedRecovery peak offered / sDrain after recovery
No jitter192 / 600408156028.8 s
Full jitter598 / 600231016.2 s
Equal jitter600 / 600051011.7 s
Decorrelated jitter599 / 600136011.6 s
Two bar charts compare four retry policies in one simulated outage: completed clients and peak offered requests per second after recovery.
Default v0.1.0 scenario: 600 clients, a three-second outage, 120 requests per second modeled recovery capacity, and seed 20260812. These are simulated, not production measurements. The recovery peak is offered load, not the number of requests served.

Where the model stops

The model uses a hard-down interval and bucketed recovery capacity. It does not model network latency, queues, circuit breakers, retry budgets, multiple regions or real production traces. The output cannot select a production retry policy by itself; review idempotency, timeouts, dependency limits and real failure evidence before changing a client.

Read all limitations and non-goals

Continue the reliability review

Review retry behavior in a real workflow

Edilec can help frame a bounded reliability experiment around your system. Share only non-sensitive details you are permitted to disclose.

Discuss a cloud reliability workflow