finds.dev← search

// the find

nats-io/nats-server

★ 20,018 · Go · Apache-2.0 · updated Jun 2026

High-Performance server for NATS.io, the cloud and edge native messaging system.

NATS Server is a high-throughput, low-latency message broker written in Go, used as the backbone for microservice communication, IoT, and edge deployments. It supports pub/sub, request/reply, and persistent streams via JetStream. If you're evaluating messaging infrastructure and find Kafka heavy and Redis Pub/Sub too primitive, NATS is the serious middle ground.

JetStream adds durable, at-least-once delivery with consumer groups and replay without the Kafka operational overhead. The internal subject-based routing with wildcard subscriptions is genuinely fast — the custom adaptive radix tree (server/stree) and lock-free sublist (server/sublist.go) are real engineering, not afterthoughts. MQTT bridge (server/mqtt.go) means you can speak to IoT devices and your microservices on the same broker without a separate Mosquitto instance. Third-party security audit by Trail of Bits completed April 2025, and the results are public — that's a higher bar than most OSS messaging projects clear.

JetStream cluster failure recovery is notoriously tricky; the four separate jetstream_cluster test files and a dedicated norace test suite signal that distributed edge cases are a real ongoing problem, not solved ones. The config format is its own thing — not YAML, not TOML — which means every new team member hits a learning wall and tooling support is thin. MQTT support is a compatibility shim, not a first-class citizen: feature parity with a dedicated MQTT broker is incomplete, and the README buries caveats in a separate file. There's no built-in schema registry or message validation, so in practice teams end up bolting on Protobuf or JSON Schema enforcement entirely outside the broker.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →