Order to confirmation
Timed from order submit to the order appearing on the venue's own account feed, not to an acknowledgement of receipt: confirmation is the point the order is live in the book and can be filled.
Order → Confirmation
Updated
3-day windowLower is better
Each mark = one measured order20× slow motion
| Endpoint | Median latency | Orders measured |
|---|---|---|
| Bullet (direct) | 7.7ms median | n=4,283 |
| Lighter | 10.2ms median | n=4,318 |
| Nado | 14.4ms median | n=4,313 |
| Pacifica | 18.6ms median | n=4,317 |
| Bullet (via Cloudflare) | 33.9ms median | n=4,206 |
| Aster | 101ms median | n=4,321 |
| Hyperliquid | 445ms median | n=4,317 |
Tail latency
- Bullet (direct)34.2 ms83.8 msBullet (direct): median 7.7 ms, p99 34.2 ms, p99.9 83.0 ms, slowest 83.8 ms.
- Lighter75.8 ms1,045 msLighter: median 10.2 ms, p99 75.8 ms, p99.9 308 ms, slowest 1,045 ms.
- Nado3,624 ms8,925 msNado: median 14.4 ms, p99 3,624 ms, p99.9 6,021 ms, slowest 8,925 ms.
- Pacifica35.1 ms68.3 msPacifica: median 18.6 ms, p99 35.1 ms, p99.9 47.9 ms, slowest 68.3 ms.
- Bullet (via Cloudflare)274 ms1,199 msBullet (via Cloudflare): median 33.9 ms, p99 274 ms, p99.9 486 ms, slowest 1,199 ms.
- Aster150 ms315 msAster: median 101 ms, p99 150 ms, p99.9 254 ms, slowest 315 ms.
- Hyperliquid947 ms8,299 msHyperliquid: median 445 ms, p99 947 ms, p99.9 2,327 ms, slowest 8,299 ms.
Log scale. Lower is better.
| Endpoint | Orders | p50 | p99 | p99.9 | Slowest | Over 100 ms | Over 250 ms | Over 500 ms |
|---|---|---|---|---|---|---|---|---|
| Bullet (direct) | 4,283 | 7.7 ms | 34.2 ms | 83.0 ms | 83.8 ms | 0 | 0 | 0 |
| Lighter | 4,318 | 10.2 ms | 75.8 ms | 308 ms | 1,045 ms | 25 | 9 | 2 |
| Nado | 4,313 | 14.4 ms | 3,624 ms | 6,021 ms | 8,925 ms | 759 | 514 | 387 |
| Pacifica | 4,317 | 18.6 ms | 35.1 ms | 47.9 ms | 68.3 ms | 0 | 0 | 0 |
| Bullet (via Cloudflare) | 4,206 | 33.9 ms | 274 ms | 486 ms | 1,199 ms | 1,180 | 110 | 1 |
| Aster | 4,321 | 101 ms | 150 ms | 254 ms | 315 ms | 2,282 | 7 | 0 |
| Hyperliquid | 4,317 | 445 ms | 947 ms | 2,327 ms | 8,299 ms | 4,317 | 4,317 | 1,153 |
Quoting means cancelling: every time the price moves, the order resting at the old one has to go. Cancels carry the same tail as orders, so one cancel in a hundred takes at least your p99 to land. Until it lands, your stale quote is still resting where the fastest taker on the other side can lift it. That is latency arbitrage, and it is paid out of your PnL.
The length of each exposure is set by p99, not p50. The frequency is set by your quote rate. Per $1M quoted, one basis point of adverse selection is $100. At 100 orders a second you settle that bill once a second.
- Window
- 72 hours to 2026-10-22 21:22 UTC · 30,075 orders · 7 endpoints
- Timed
- One interval per order: submit to account-feed confirmation. The cancel that follows is not in it, and neither is signing. No network-floor subtraction, no speed-bump adjustment.
- Harness
- One m8gd.2xlarge in ap-northeast-1d. One client, one clock, identical for every endpoint.
- Orders
- One order per measurement, one measurement a minute per endpoint, submitted singly and cancelled once it confirms. Post-only, so it rests or is rejected and never trades. Batch submissions are excluded.
- Transport
- One WebSocket per endpoint, held open across measurements. No order opens a connection, so no figure here includes a TCP or TLS handshake. What is timed is the venue and the round trip.
- Endpoints
- Bullet (direct) hits our trading API load balancer with nothing in front of it. Bullet (via Cloudflare) is the same engine behind Cloudflare, which is there to absorb abuse and charges latency and a good deal of jitter for it, so market makers take the direct path.
- Volleys
- A display grouping on the track. Orders do not arrive synchronised across venues.
- Cancels
- Measured separately by the same collector and not shown here: a long order tail means a long cancel tail.
- Prior art
- Inspired by Check the Chain's benchmark. Ours is written from scratch in Rust, so no garbage collector can pause the harness in the middle of a measurement.