Here is comparison of two popular messaging services
RabbitMQ
RabbitMQ a queuing systems, has some pro ans cons when compared to kafka.
Pros:
- Easy to setup and start
- Provides controls over the way the messages are consumed, ( but for consuming one message at a time ensure that prefetchCount =1)
- Bundles well with Kubernetes
Cons:
- Slower than kafka
- Scalability can be problematic.
- Its more like a framework, many things are build in the system like "RabbitMQ doesn't allow you to redefine an existing queue with different parameters and will return an error to any program that tries to do that"
- Queue size needs to be monitored
- Its not kafka ;)
Kafka
Pros:
- Highly Scalable
- Distributed at level of brokers, consumer group and anything else that you can name
Cons:
- (comparatively) Difficult to setup.
- No options for poll once (otherwise manually manage the offset)
- Most examples are from the last versions.(breaking changes)