Jainal Gosaliya's walkthrough of NATS puts forward a claim worth testing: one binary can replace Kafka, Redis, and RabbitMQ. NATS runs a single process on port 4222 and handles fire-and-forget pub/sub (Core NATS), persistent messaging (JetStream), and key-value storage. For teams tired of operating three separate infrastructure pieces, the consolidation is attractive. NATS uses subject-based routing with wildcards instead of Kafka's partition model, which means you can spin up unlimited subscribers without rebalancing headaches.
The tradeoffs get interesting. Core NATS disconnects slow consumers rather than stalling the broker. If your subscriber can't keep up, it gets cut off and loses messages. This is intentional design, not a bug. NATS prioritizes broker health over individual consumer guarantees. JetStream fixes this by persisting to disk before delivery, letting slow consumers build lag like they would in Kafka. The caveat: a Jepsen analysis of NATS 2.12.1 found safety issues around committed writes. Hacker News commenters noted that Kafka still wins when you need maximum durability. One user described Kafka as something you can "throw lava at it and it will eat it."
NATS has found its niche in telemetry, real-time data processing, and scenarios where stale data is worse than no data. Derek Collison created it in 2013 at Apcera with a philosophy of 'invisible infrastructure.' Synadia, founded in 2017, now backs the project with enterprise support. For AI agent workflows that need lightweight coordination without Kafka's operational weight, NATS is worth a look. Just understand what you're trading away.