n.nishant.dev
Workspace/Backend Performance Lab
Built in the open
INTERACTIVE ENGINEERING / SIMULATION

See where the waiting happens.

Explore how worker capacity, concurrency, and workload shape a request queue. Every number here is derived from a deterministic virtual model—not a benchmark of Rust, Tokio, or this website.

SIMULATION ONLY

Runs locally in your browser. No load is sent to a backend. Exported results are labeled as simulation data.

EXPERIMENT / 01DETERMINISTIC SIMULATION

Configure the workload.

Compare the same seeded work under two execution models.

Worker budget, failures & repeatability

Your experiment starts here.

Run the model to inspect simulated throughput, latency, and request outcomes. No backend is called.

HOW TO READ THE EXPERIMENT

A transparent model, with clear limits.

01 / SCHEDULING

Sync, async, and blocking.

A synchronous caller waits for an operation to return before continuing. Async execution can yield while waiting. The blocking model holds a worker for dispatch plus the full service duration; the async model releases it during I/O waits. CPU-bound work holds a worker in both models.

02 / WORKLOAD

A closed-loop request model.

Each client sends its next request only after its previous request finishes. A fixed 2 ms dispatch cost precedes work. Seeded, per-client samples determine service jitter and failures. This is not an open-loop traffic generator or a real Tokio scheduler.

03 / MEASUREMENTS

Virtual time, declared denominators.

Latency is finish minus arrival, including queue time. p50/p95/p99 use nearest-rank percentiles over all completed requests, including failures. Successful throughput is successes divided by configured virtual seconds; error rate is failures divided by completed requests.

04 / BOUNDARIES

No completion, no percentile.

Requests unfinished at the cutoff are counted separately and excluded from latency and error-rate samples. Empty samples show a dash. The model omits network overhead, database behavior, memory pressure, and runtime costs. It cannot establish production capacity.

What a real Rust benchmark would need

A declared hardware and deployment environment, versioned workload, warm-up policy, raw request observations, error categories, and a collection window. Real endpoint measurements should remain separate from these simulated results.

Read the concurrency implementation note →