Kafka by default is large distributed messaging system that supports horizontal scaling easily so it's better to be used for cases like when having a large real-time stream of data or high number of consumers. RabbitMQ by default doesn't support this high volume, it supports basic patterns of Pub/Sub or message broker system. But using Masstransit, can extend the functionality of Rabbitmq so it can support multiple topics and scale out. But for usage as per what I saw, for scalable message broker that can process high volume of data, many go by default to Kafka