Use RabbitMQ when:
- You don’t have to handle with Bigdata and you prefer a convenient in-built UI for monitoring
- No need of automatically replicable queues
- No multi subscribers for the messages- Since unlike Kafka which is a log, RabbitMQ is a queue and messages are removed once consumed and acknowledgment arrived
- If you have the requirements to use Wildcards and regex for messages
- If defining message priority is important
In Short:
RabbitMQ is good for simple use cases, with low traffic of data, with the benefit of priority queue and flexible routing options.
For massive data and high throughput use Kafka.