Kafka or RabbitMQ: What to Use When
Distributed messaging is based on the concept of reliable message queuing. Messages are queued asynchronously between client applications and messaging system. RabbitMQ is the ordinary queue management protocol (mainly using FIFO). Kafka also act as almost same but more than that we consider it as a stream processing system.