In your journey to get away from monolithic applications and start streaming data processing, you’ll undoubtedly have to compare three solutions that have each tackled the distributed messaging problem in different ways. Kinesis, Kafka, and RabbitMQ all allow you to build your microservices applications. But which should you choose?
Kinesis, created by Amazon and hosted on Amazon Web Services (AWS), prides itself on real-time message processing for hundreds of gigabytes of data from thousands of data sources. Apache Kafka was developed by the fine folks over at LinkedIn and works like a distributed tracing service despite being designed for logging. Lastly, RabbitMQ is a general-purpose message broker that can be designed to fit any distributed tracing need but comes with a slightly steeper learning curve.
In this article, we will discuss the features, pros, and cons of the three services in question and also present use cases to help determine if the technology in question lines up with your business goals. We will rate each service per four different topics:
- Ease of Getting Started
- Scalability
- Managed vs. Unmanaged
- Maintenance Complexity
Ratings will be from 0 to 2, with the winner being the one with the fewest points in the end.