Я ещё добавлю про важный момент: чтобы пользоваться нашими очередями, в Яндекс.Облаке свой сервис держать вовсе необязательно: endpoint сервиса доступен и снаружи. Правда при работе с сервисом из облачных VM вы не платите за трафик, только за запросы, что, конечно, выгоднее.
В остальном есть куча различий. Kafka больше про упорядоченные потоки данных (per partition) и exactly-once семантику (при определённых усилиях со стороны потребителя, конечно). Она хорошо масштабируется и позволяет прокачивать огромные объёмы данных. Но в то же время её API становится неудобным, если порядок неважен, а хочется обрабатывать сообщения в очереди независимо. С Kafka не получится так же легко построить очередь задач, как на основе YMQ. Например, в Celery она не поддерживается по этой причине — зато есть RabbitMQ, AWS SQS (а значит и YMQ) и другие.
Архитектура сервиса распределённых очередей сообщений в Яндекс.Облаке
Архитектура сервиса распределённых очередей сообщений в Яндекс.Облаке
В остальном есть куча различий. Kafka больше про упорядоченные потоки данных (per partition) и exactly-once семантику (при определённых усилиях со стороны потребителя, конечно). Она хорошо масштабируется и позволяет прокачивать огромные объёмы данных. Но в то же время её API становится неудобным, если порядок неважен, а хочется обрабатывать сообщения в очереди независимо. С Kafka не получится так же легко построить очередь задач, как на основе YMQ. Например, в Celery она не поддерживается по этой причине — зато есть RabbitMQ, AWS SQS (а значит и YMQ) и другие.