Member-only story

Why you want RabbitMQ not Kafka

RabbitMQ is surpassing Kafka in features and maintainability

Eric Fossas
4 min readMar 12, 2022
RabbitMQ runs easily on Kubernetes and now offers streams like Kafka as of version 3.9

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.

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Responses (9)

Write a response

I'm always facinated when people says that "Kafka is an overkill" or "is too complex for our project". Yes, it can be a bit difficult to setup from scratch (not that difficult though) but you have so many resources and ways to alliviate that, that…

--

Sadly RabbitMQ is not AMQP compatible. They worked with the standards body until V0.95, but never made the step to V1, instead choosing to take their implementation in a different direction. A great opportunity missed imho. Otherwise I’d agree that…

--