Member-only story
Why you want RabbitMQ not Kafka
RabbitMQ is surpassing Kafka in features and maintainability

Introduction
RabbitMQ seems to have fallen to the wayside in recent years with more and more companies turning to streaming databases like Kafka to handle high throughput messaging.
That might be changing soon. Kafka has a reputation for being difficult to run at scale. Strimzi, an open source project, tries to alleviate the troubles of running Kafka. There’s also the Confluent (a company founded by the LinkedIn engineers who created Kafka) platform operator.
But now that RabbitMQ supports streams as of version 3.9, you can use RabbitMQ for both your messaging and stream needs. In my experience, RabbitMQ is very easy to run and maintain. They also have a top quality Kubernetes operator.
I’ll also mention the Apache Pulsar project which can also be deployed to Kubernetes. They don’t have an operator, but provide an admin UI for managing all resources. Their architecture looks just as complicated if not more so than Kafka though, so I imagine running it at scale is quite difficult as well.
RabbitMQ on the other hand, doesn’t use a bunch of external dependencies to manage everything. Every RabbitMQ node has everything it needs, thus the only thing to manage are the nodes. That’s probably why it’s so much simpler to maintain.
Finally, I’ll also mention Redis added streams in their version 5. I find that to be an odd addition for a database that was originally built to just be an in-memory database. I’ve heard they’re simple to work with though. Although the architecture of Redis is just as simple as RabbitMQ, they only offer an enterprise Kubernetes operator.
Features
So RabbitMQ can now act as:
- an AMPQ messaging database
- a streams database
I’m an operator not a developer, so this blog post is going to focus on running RabbitMQ on Kubernetes, but if you’re interested in streams, I suggest you read their page on it. It starts off with a great explanation of why you might need streams instead of messaging.