как это устроено

Ack только после того, как данные в S3

Roxa не привязывает данные к диску конкретного брокера. Вместо этого записи группируются в памяти и durable-сохраняются в объектное хранилище — модель diskless. Отсюда два свойства: брокер near-stateless (упал — поднялся новый и читает из S3), а подтверждение приходит только после фактической записи. Ниже — путь сообщения.

путь записи
  1. 1

    Продюсер пишет

    Сообщения принимаются, каждому присваивается монотонный offset — порядок в партиции гарантирован.

  2. 2

    Коалесинг

    Записи многих продюсеров копятся в памяти считанные десятки миллисекунд, чтобы не делать тысячи мелких обращений к хранилищу.

  3. 3

    Один объект в S3

    Накопленная пачка одним объектом уходит в S3/MinIO и становится durable.

  4. 4

    Подтверждение после S3

    Продюсер получает ack только когда объект зафиксирован в хранилище. Между «принял» и «сохранил» потери нет.

надёжность

Durability без компромиссов

ack после хранилища сейчас

Каждая пачка durable-сохраняется в S3/MinIO или на файловую систему ДО подтверждения продюсеру. Между «принял» и «сохранил» потерь нет — по построению.

buffered (WAL) в разработке

Режим с локальным журналом для ещё более быстрого ack при той же надёжности — для сценариев с жёсткими требованиями к латентности.

Хранилище выбираете вы: S3/MinIO или локальная файловая система — одним параметром конфига.

совместимость

Работает с экосистемой Kafka

  • Produce / Fetch — существующие клиенты работают как есть
  • Консюмер-группы с ребалансом (subscribe, commit, heartbeat)
  • Компрессия: gzip, snappy, lz4, zstd
  • Идемпотентные продюсеры (InitProducerId)
  • SASL/PLAIN, TLS
  • Проверено живыми клиентами на librdkafka: kcat, Go, Python и другие
чем отличается

Roxa рядом с Kafka и Redpanda

RoxaApache KafkaRedpanda
Хранилище данныхS3 (diskless)Диски брокеровДиски + tiered
РантаймRust, без JVMJVM + ZK/KRaftC++
Потеря при падении узлаНет — данные в S3Возможна до репликацииВозможна
СтартОдин бинарьКластер + координацияКластер
Kafka-клиентыДаДаДа
Цена владенияЛицензия навсегда, минимум эксплуатацииБесплатно + команда эксплуатацииEnterprise-подписка вендора (США)

Латентность зависит от режима durability и хранилища: на локальном NVMe/MinIO — десятки миллисекунд, на удалённом S3 — выше. Мы не обещаем цифр, которые не выдержим.