Sandbox
The same incident you've been reading about.
A read-only Sondar instance seeded with a checkout-latency incident: a spike in the histogram, a failing service, a connection pool that ran out. No account, no email, no sales call.
Status
The live sandbox is the most expensive thing on this site and the highest-leverage one, so it is being built first rather than last. Until the session broker ships, what's below is the product surface rendered from the same seed data — real markup, real numbers, not a picture of a UI. When the live instance lands, this page becomes it, and we'll say so here rather than quietly swapping them.
| endpoint | p99 latency |
|---|---|
| POST /api/checkout | 4,218ms |
| POST /api/checkout | 4,106ms |
| GET /api/cart | 388ms |
| POST /api/payment/authorize | 291ms |
| GET /api/inventory | 62ms |
| pool.name | avg wait |
|---|---|
| ledger-db | 4,188ms |
| ledger-db-replica | 912ms |
| sessions | 38ms |
| catalog | 11ms |
| span | duration |
|---|---|
| POST /api/checkout | 4,218ms |
| authorize | 4,196ms |
| pool.acquire | 4,188ms |
| ledger.write | 7ms |
What the seeded scenario walks through
- 14:03 UTC. p99 on
POST /api/checkoutgoes from 240ms to 4.2s. The histogram shows it before anyone pages you. - Filter to the failing service.
payments-gatewayis the one whose latency moved;checkout-apiis just waiting on it. - Extract a field you never mapped. The raw JSON has
pool.wait_msinside it. Pull it out at search time — no reindex, no pipeline change, no schema decision made six months ago. - Aggregate.
stats p99(pool.wait_ms) by pool.nameand the answer isledger-db, at 32 of 32 connections in use. - Confirm the cause. Join to the deploy annotation four minutes earlier that widened a transaction.
Roughly ninety seconds end to end. If it takes you longer than that, that's a product problem and we'd like to hear about it.
Or skip the sandbox and run the real thing.
It's one container and it takes about as long as reading this page.