Back Original

Show HN: BusterMQ, Thread-per-core NATS server in Zig with io_uring

DETAILED BENCHMARKS.

Fan-out benchmark: 10 publishers, 100 subscribers (10 per topic), 10 topics, 50M messages, 128-byte payload.

Metric Standard +BusyPoll +Route +Route+BusyPoll Go NATS
Duration 9.510s 9.105s 9.344s 8.448s 19.577s
Pub Rate 5.56M 5.82M 5.66M 6.30M 2.62M
Delivery Rate 52.56M 54.90M 53.20M 58.74M 25.53M
Bandwidth 7.34 GB/s 7.66 GB/s 7.43 GB/s 8.20 GB/s 3.56 GB/s
Fan-out 10.00x 10.00x 9.94x 9.92x 10.00x
p50 Latency 8.48 ms 8.16 ms 6.16 ms 6.58 ms 73.59 ms
p90 Latency 12.78 ms 11.15 ms 9.33 ms 10.26 ms 81.68 ms
p99 Latency 58.25 ms 13.07 ms 18.71 ms 15.66 ms 92.51 ms
p99.9 Latency 65.49 ms 14.33 ms 23.65 ms 20.36 ms 99.05 ms

Standard — Default io_uring

+BusyPoll — Spin-loop mode

+Route — Shard-aware routing

+Route+BusyPoll — Best config

NATS PROTOCOL COMPATIBLE.

Use your existing clients. More features coming.

CORE PROTOCOL

Publish / Subscribe PUB, SUB, UNSUB

Wildcard Subscriptions *, >

Queue Groups incoming

Request / Reply incoming