01 / SYSTEMS · DISCRETE-EVENT PHYSICS

Causality.

Increase sample traffic and find which service becomes a bottleneck.

Agent-assisted deliverySEEDED SIMULATION · #42
0/4Gateway18 ms1/4Context70 ms3/3Planner180 ms2/3Tool runner95 ms1/2Verifier65 ms1/3Evidence30 msSERVICE OCCUPANCY / MODELED TIME3.10 s
3100 ms
Occupied worker slots Calls affected by a faultGlow grows with queue length
Successful requests100.0%180 / 180 completed
Successful request p95526 msEnd to end, including waits
Longest queue wait68 msAcross modeled service calls
Largest mean waitPlannerInspect this service first
The sample models an agent delivery pipeline. Change its conditions, then inspect what happens.

Follow one request

ServiceWaitWorkOutcome
Gateway0.0 ms17.0 msCompleted
Context0.0 ms82.2 msCompleted
Planner0.0 ms163.1 msCompleted
Tool runner0.0 ms98.2 msCompleted
Verifier0.0 ms60.5 msCompleted
Evidence0.0 ms29.3 msCompleted

Bring your own architecture

Edit this small model or paste an exported architecture object. All branches are required; a join waits for every parent.

Why the replay is reproducible

A time-ordered event queue schedules arrivals and service completions. Each request and service gets the same seeded timing sample when you change a worker count. Parallel branches join explicitly. Faults fail calls whose service intervals overlap the outage. Queued work already reserved may still consume capacity. There are no retries, caching, network transit delays, or production rate limits in this model. Failed request latencies are excluded from p95 and reported through the success rate.

The design draws on deterministic event scheduling and simulation-based systems testing. This is a rehearsal, not a forecast of your production system.

The person behind the project

A note from Luis.

I like drawing software dependencies as clearly as a structural load path. This experiment turns a service diagram into a repeatable queue simulation, so a proposed improvement has something concrete to be compared against.

Who it helps

Engineers exploring a service bottleneck before changing capacity.

Try this

Increase the request rate, replay the scenario, and inspect which queue grows before adding workers.

Start with the lost-response example