This final episode compares NATS with Kafka, RabbitMQ, MQTT, and Redis Streams along with when to choose each, recaps the journey of the entire series, presents a production-grade messaging architecture checklist, and closes with a look at the future of NATS.

Congratulations, you've completed 22 episodes. This final episode gives you perspective: where NATS stands among its competitors, when to choose which, and what you can take home from this entire journey.
We'll compare NATS with four alternatives, put together a production checklist, then close with a look to the future. Think of this episode as the complete landscape of the map you've been exploring.
Kafka is the industry standard for stateful streaming: partitions, offsets, and long-term replay. But it's heavy — it needs brokers and complex configuration.
NATS -> lightweight, simple, low latency, at-least-once
Kafka -> partitions, offsets, long replay, through-processorsThe NATS -> lightweight, simple, low latency comparison makes it clear: NATS excels in simplicity and speed; Kafka excels in very large-scale data replay. Choose Kafka if you need a central event log with multi-year retention and a large ecosystem; choose NATS if simplicity and resources matter more.
RabbitMQ offers rich routing with exchanges and bindings. NATS offers far simpler subject-based routing.
| Aspect | RabbitMQ | NATS |
|---|---|---|
| Routing | Exchanges and bindings | Subjects and wildcards |
| Persistence | Queues | JetStream streams |
| Resources | Erlang/OTP, large memory | Single binary, small footprint |
| Protocol | AMQP 0-9-1 | Lightweight NATS protocol |
The choice between rich routing and simplicity depends on your needs. RabbitMQ suits integrating legacy AMQP-based systems; NATS better suits modern microservices that want one simple protocol for all patterns.
MQTT is a protocol for constrained IoT devices. NATS can even act as an MQTT broker — as discussed in episode 15 — so the two aren't replacements but complements.
MQTT sensor --> NATS (mqtt broker) --> JetStream stream --> microservicesThe MQTT sensor -> NATS (mqtt broker) flow shows one NATS broker serving IoT devices and microservices at the same time. For devices that only speak MQTT, use NATS as the broker; for internal communication, use NATS subjects directly.
Redis Streams provides streaming with syntax familiar to Redis users. But it lacks JetStream features like distributed durability, consumer groups with full ack, and Raft replication.
nats stream add ORDERS --subjects "orders.>" --replicas 3
redis-cli XGROUP CREATE orders worker 0nats stream add ORDERS --subjects "orders.>" --replicas 3 builds a distributed stream; XGROUP CREATE in Redis requires manual management. If you're already tied to Redis and your streaming needs are simple, Redis Streams suffices; if you need production-grade persistence, JetStream is the better fit.
There's no universal answer; every choice follows your needs:
simplicity + speed + small resources -> NATS
large event log + long replay -> Kafka
AMQP integration / rich routing -> RabbitMQ
IoT devices using MQTT protocol -> MQTT broker (can be NATS)
already on Redis, light streaming -> Redis StreamsThe simplicity + speed + small resources -> NATS row is the most common decision in modern architecture. Use this matrix as a starting point, then validate against concrete requirements and load tests.
Info
Don't choose a broker because of trends. Measure your needs: volume, latency, retention, resources, and team expertise. NATS excels in many cases, but not all. The courage to reject the wrong broker is as valuable as choosing the right one.
Your journey stretched from the foundation to production:
The Phase 3: streams, consumers, KV and object store, work queues, accounts pattern shows ever-increasing maturity — from a single nats pub command to a multi-region cluster architecture.
Here's the final checklist before your NATS serves production:
nats server check
nats stream report
nats consumer reportThe three commands nats server check, nats stream report, and nats consumer report are your production gateway. If everything is healthy, your architecture is ready.
NATS keeps evolving: increasingly mature multi-account support, penetration into the edge and IoT through leaf nodes, and cloud-native integration via operators and KEDA. Its philosophy hasn't changed — lightweight, simple, and fast — while its features keep growing.
edge computing + leaf nodes -> NATS as the IoT backbone
multi-account & JWT -> more mature multi-tenancy
cloud-native ecosystem -> K8s, KEDA, service meshThe edge computing + leaf nodes scheme shows NATS moving to where simplicity is needed most: from data centers to small devices. Mastering NATS now means holding a skill that will stay relevant for a long time.
Episode 22 closes the series with perspective: NATS versus Kafka, RabbitMQ, MQTT, and Redis Streams along with when to choose each, a recap of your six-phase journey, a production-grade architecture checklist, and a look at NATS's future at the edge and in the cloud.
Key takeaways:
This is the end of the Learn NATS series — 23 episodes from pre-requisites to production-grade architecture. You've built a complete skill set: Core NATS, JetStream, KV and object store, work queues, security, clustering, Kubernetes, monitoring, and troubleshooting. NATS is a messaging choice that proves simple and powerful can go hand in hand. Apply everything you've learned to real projects, test it in the real world, and keep exploring the nats.io ecosystem. See you in the next series!