Фоновые задачи (сгенерировать PDF, отправить письмо, обработать видео): каждую задачу должен взять один воркер, подтвердить после выполнения, при сбое — повторить, после N попыток — отложить в DLQ. Задачи разной длительности. RabbitMQ делает это из коробки: конкурирующие потребители на одной очереди, prefetch для справедливого распределения, DLX, TTL, приоритеты, отложенная доставка (плагин). В Kafka одна медленная задача задерживает всю партицию, а повторы требуют отдельных топиков.
Шина событий («заказ создан», «платёж прошёл»): несколько сервисов реагируют независимо, новый сервис может прочитать историю, нужен порядок событий сущности, объёмы большие. Kafka: журнал с хранением, группы потребителей, порядок по ключу, CDC и потоковая обработка. В RabbitMQ пришлось бы держать очередь на каждого подписчика, а прочитанное пропадает.
Другие критерии: эксплуатация (управляемые сервисы), экосистема, требования к задержке (RabbitMQ обычно ниже при малых объёмах), объём (Kafka — на порядки больше).