Skip to content

The Kafka Protocol, Implemented in Rust, Is Here ​

RobustMQ's multi-protocol architecture

This is an announcement post: RobustMQ now has a Kafka-compatible protocol layer running on top of its unified kernel. This is not a Kafka rewrite — it's a protocol adapter over the same storage and metadata layer that already serves MQTT.

What's supported ​

66 Kafka APIs are implemented and working end to end.

Current limitations ​

To be upfront about where this stands today:

  • No transactions
  • No KIP-932 share groups
  • Fetch does not support compression yet
  • Permissions and quotas aren't enforced at runtime yet
  • No replica-migration or manual-leader-switch admin APIs — these aren't needed in the same way Kafka needs them, since storage and Raft already handle data placement and failover underneath

Testing done so far ​

Around 200 integration tests running against a 3-node cluster, tests against real Java Kafka clients, and verification against the official Kafka CLI tools.

Architecture ​

Kafka architecture layers

Five layers: client → protocol codec → core semantics → File Segment storage → Raft metadata.

Core technical features ​

  • Raft-based metadata, no ZooKeeper, no KRaft needed. RobustMQ already has its own metadata/Raft layer; Kafka's protocol support rides on it directly instead of bringing in a separate metadata system.
  • File Segment storage. Same segment-based append-only log used across the rest of the system.
  • Both old and new rebalance protocols. The classic protocol and KIP-848 are both implemented and usable.
  • Segment-level data rebalancing instead of partition reassignment. New capacity gets new segments placed on it, rather than requiring existing partition data to be copied around.
  • ISR replication with epoch fencing. Standard correctness guarantees around replica catch-up and leader epochs.
  • Rust plus an append-only design for performance.

What's next ​

Kafka roadmap

AMQP is next up — it's another data point for validating the "one kernel, many protocols" architecture, this time against a protocol with a very different consumption model than Kafka or MQTT.

Beyond that, there's mq9 — not a compatibility layer for an existing standard, but a brand-new protocol built specifically for AI agent communication.

🎉 既然都登录了 GitHub,不如顺手给我们点个 Star 吧!⭐ 你的支持是我们最大的动力 🚀