Performance Benchmark
Both Diminuendo and Crescendo connect to the same Podium (agent orchestrator) and Ensemble (LLM inference). Since agent processing time is constant across both gateways, the measured delta is the gateway overhead.All benchmarks run locally on the same machine with shared backends. 10 warmup iterations are discarded before measurement begins.
Test Environment
| Service | Port | Notes |
|---|---|---|
| Podium Gateway | :5083 | Shared — both gateways route here |
| Podium Coordinator | :5082 | Shared |
| Ensemble | :5180 | Shared |
| Crescendo | :8002 | Next.js on Bun (dev/turbo) |
| Diminuendo | :8080 | Bun + Effect TS |
Results
Health Endpoint
100 iterations, 10 warmup
| Diminuendo | Crescendo | Speedup | |
|---|---|---|---|
| p50 | 0.6ms | 5.0ms | 8.4x faster |
| p95 | 1.1ms | 7.5ms | 6.8x faster |
| p99 | 1.4ms | 10.3ms | 7.3x faster |
| mean | 0.7ms | 5.6ms | 8.0x faster |
| stddev | 0.3ms | 1.6ms | 5.3x tighter |
| RPS | 10,390 | 291 | 35.7x throughput |
Connection & Auth
20 iterations
| Diminuendo | Crescendo | Speedup | |
|---|---|---|---|
| p50 | 0.4ms | 5.5ms | 15.7x faster |
| p95 | 0.5ms | 8.5ms | 17.0x faster |
POST /api/e2e/seed which requires a PostgreSQL upsert round-trip.
Session / Thread Creation
50 iterations, 10 warmup
| Diminuendo | Crescendo | Speedup | |
|---|---|---|---|
| p50 | 0.6ms | 17.7ms | 27.6x faster |
| p95 | 0.9ms | 24.8ms | 27.6x faster |
| p99 | 0.9ms | 51.9ms | 57.7x faster |
| mean | 0.7ms | 19.1ms | 27.3x faster |
| stddev | 0.1ms | 8.9ms | 89x less variance |
| min | 0.5ms | 10.9ms | |
| max | 0.9ms | 75.9ms |
Summary
| Metric | Diminuendo | Crescendo | Diminuendo advantage |
|---|---|---|---|
| Health p50 | 0.6ms | 5.0ms | 8.4x faster |
| Health RPS | 10,390 | 291 | 35.7x throughput |
| Auth/connect p50 | 0.4ms | 5.5ms | 15.7x faster |
| Session create p50 | 0.6ms | 17.7ms | 27.6x faster |
| Session create p95 | 0.9ms | 24.8ms | 27.6x faster |
| Session create jitter | 0.1ms stddev | 8.9ms stddev | 89x less variance |
Why Diminuendo Is Faster
Bun-native runtime
Bun’s native HTTP server + Effect TS vs Next.js middleware stack saves ~4ms per request.
WebSocket transport
Persistent connection eliminates per-request TCP handshake and cookie parsing. Auth is amortized to zero after the initial connect.
In-process SQLite
Zero-network writes save 10–15ms per database operation compared to PostgreSQL over TCP.
In-process pub/sub
Bun’s built-in publish/subscribe avoids the Redis network hop, saving 1–2ms per event.
Raw Backend Baselines
Direct health-check latency to the shared backends (50 iterations), for reference:| Backend | p50 | p95 |
|---|---|---|
| Podium | 0.37ms | 0.76ms |
| Ensemble | 0.24ms | 0.39ms |