сравнение

Roxa vs RabbitMQ

Это инструменты под разные задачи, и честный ответ часто — «вам нужен RabbitMQ». RabbitMQ — классические очереди задач с гибкой маршрутизацией. Roxa — стриминг событий: история хранится, её можно перечитать, потребители независимы.

RoxaRabbitMQ
Модель данныхЛог/стрим: история хранится, читается зановоОчередь: сообщение доставлено — и удалено
Перечитывание историиДа — любой consumer с любого offsetНет (streams-режим — отдельная история)
Несколько независимых читателейШтатно: консюмер-группы с offset'амиЧерез fanout-обвязку
МаршрутизацияПо ключу в партицииГибкая: exchange, routing key, TTL, приоритеты
ХранениеS3/MinIO или ФС, retention по размеру/времениДиск узла, кластер зеркалирует
ПротоколKafka wireAMQP 0-9-1
РантаймRust, один контейнерErlang/OTP
честный выбор

Когда выбрать RabbitMQ

Очереди задач между сервисами: отправил — обработал — забыл. Сложная маршрутизация (по типам, приоритетам, с TTL и dead-letter), RPC-паттерны. История сообщений не нужна.

Когда выбрать Roxa

События, которые нельзя терять и полезно перечитывать: заказы, платежи, аудит, телеметрия. Несколько независимых потребителей одного потока. Новый сервис подключился — и прочитал историю с нужного места.

Отдельный случай — если у вас RabbitMQ уже используется как «типа стриминг» с ручными обвязками для повторного чтения: это ровно та боль, под которую строилась модель лога. Миграция потребует смены клиента (AMQP → Kafka), но клиенты Kafka есть для всех языков.