RabbitMQ — классический брокер сообщений с умной маршрутизацией (exchanges, routing keys, bindings). Сообщение доставляется одному консюмеру и удаляется. Kafka — распределённый лог, сообщения хранятся на диске и доступны множеству консюмеров. RabbitMQ лучше для: задач с подтверждением (task queues), сложной маршрутизации, low-latency. Kafka лучше для: высокой пропускной способности, event sourcing, replay событий, аналитики. RabbitMQ проще в настройке, Kafka сложнее, но масштабируется лучше. Если нужна очередь задач — RabbitMQ. Если нужен журнал событий, который читают много сервисов — Kafka.