The interactive lab

Every millisecond goes somewhere.

A slow request is usually several waits added together. Change the inputs and watch the critical path move.

Set the conditions
Request durations in milliseconds

Only valid when neither service needs the other’s output.

End-to-end latency210ms
0 ms210 ms

Each stage waits for the previous one. The durations add up.

An illustrative model, not a benchmark. Assumes fixed durations, a single queue, and no concurrency overhead. Network time is the total round trip.

Try a few things

Start by increasing network time. Both services wait for the request to arrive, so making them parallel won’t remove that cost.

Next, set both services to 100 ms and switch on parallel execution. If they’re independent, the pair can finish in the time of the slower service. Set one to 0 ms and the parallel advantage disappears.

Know what the model leaves out

This experiment assumes fixed durations and no cost for coordination. Real systems have variable queues, shared resources, connection setup, and tail latency. Two services competing for the same database can become slower when run together.

The useful question is whether work can overlap without creating a dependency or moving the bottleneck. Read Latency is a budget, not a single number for the reasoning behind the model.