Skip to content

Protocol Compatibility Matrix ​

This document lists RobustMQ Kafka's compatibility per API: the supported version range, implementation status, and differences from native Kafka. It is the authoritative reference for deciding whether your client / tool can connect directly.

RobustMQ Kafka API Coverage

Status legend ​

IconMeaning
✅Full: implemented per protocol semantics, ready to use
🟡Partial: advertised and accepts requests, but semantics are trimmed (e.g. no-op, not enforced)
⚪Intentionally unsupported: returns an explicit error instead of crashing; not offered by design
❌Not implemented: not advertised in ApiVersions; clients using it fail fast

"Supported versions" is the range RobustMQ advertises in ApiVersions; where no version is noted, the API is handled at the version the client negotiates.

Data plane ​

KeyAPIVersionsStatusDifferences / Notes
0Producev0–7✅Idempotent writes supported; transactional writes rejected; LogAppendTime not applied
1Fetchv4–13✅Consumer side always returns uncompressed records; no incremental fetch session; partition_leader_epoch=0; no read_committed
2ListOffsetsv0–6✅earliest / latest / by timestamp
3Metadatav0–12✅Auto-creates topics by default (auto.create.topics.enable)

Consumer group (classic protocol) ​

KeyAPIVersionsStatusDifferences / Notes
8OffsetCommit—✅Commit consumed offsets
9OffsetFetch—✅v8 supports multi-group batch queries
10FindCoordinatorv0–4✅Returns the coordinator for both group and transaction; transaction fails fast in later APIs
11JoinGroupv0–6✅Join a group, trigger rebalance
12Heartbeat—✅Maintain membership
13LeaveGroup—✅Voluntarily leave
14SyncGroup—✅Sync partition assignment
15DescribeGroups—✅Query group state
16ListGroups—✅List all groups
42DeleteGroups—✅Delete groups
47OffsetDelete—✅Delete committed offsets

Consumer group (KIP-848, next generation) ​

KeyAPIVersionsStatusDifferences / Notes
68ConsumerGroupHeartbeatv0–1✅Server-side assignment; no subscribed_topic_regex
69ConsumerGroupDescribev0–1✅Query next-gen consumer groups

Idempotent Producer ​

KeyAPIVersionsStatusDifferences / Notes
22InitProducerIdv0–3✅Idempotent only; with transactional_id returns TRANSACTIONAL_ID_AUTHORIZATION_FAILED

Authentication & handshake ​

KeyAPIVersionsStatusDifferences / Notes
17SaslHandshakev1✅Select SASL mechanism (SCRAM-SHA-256 / SCRAM-SHA-512)
18ApiVersionsv0–4✅First request after connect, negotiates available APIs
36SaslAuthenticate—✅SASL token exchange

Topic / Partition management ​

KeyAPIVersionsStatusDifferences / Notes
19CreateTopicsv0–7✅Rejects manual replica assignment (replicas managed by storage)
20DeleteTopics—✅Delete topics
21DeleteRecords—✅offset > HW returns OffsetOutOfRange
37CreatePartitions—✅Add partitions

Configuration management ​

KeyAPIVersionsStatusDifferences / Notes
32DescribeConfigs—✅Query configuration
33AlterConfigs—✅Modify configuration
44IncrementalAlterConfigs—✅Incrementally modify configuration
74ListConfigResources—🟡no-op: advertised but returns no resources

Most configs are storable but not enforced; see Compatibility & Limitations.

Cluster & operations ​

KeyAPIVersionsStatusDifferences / Notes
60DescribeCluster—✅Cluster info
75DescribeTopicPartitionsv0✅Topic partition details
61DescribeProducers—❌Not advertised
34AlterReplicaLogDirs—⚪Intentionally unsupported (returns error, does not crash)
35DescribeLogDirs—⚪Intentionally unsupported
43ElectLeaders—⚪Intentionally unsupported (leaders managed by storage)
45AlterPartitionReassignments—⚪Intentionally unsupported (replicas auto-managed)
46ListPartitionReassignments—⚪Intentionally unsupported
57UpdateFeatures—⚪Intentionally unsupported

Security: ACL / quotas / SCRAM credentials ​

KeyAPIVersionsStatusDifferences / Notes
29DescribeAcls—✅Query ACLs (not enforced for authorization)
30CreateAcls—✅Create ACLs (not enforced)
31DeleteAcls—✅Delete ACLs (not enforced)
48DescribeClientQuotas—✅Query quotas (client-id only, not enforced for throttling)
49AlterClientQuotas—✅Modify quotas (not enforced)
50DescribeUserScramCredentials—✅Query SCRAM credentials
51AlterUserScramCredentials—✅Add/remove SCRAM credentials (SASL auth validates against these)

Delegation tokens ​

KeyAPIVersionsStatusDifferences / Notes
38CreateDelegationToken—✅Metadata management; tokens do not participate in auth
39RenewDelegationToken—✅Renew (metadata)
40ExpireDelegationToken—✅Expire (metadata)
41DescribeDelegationToken—✅Query (metadata)

Client telemetry (KIP-714) ​

KeyAPIVersionsStatusDifferences / Notes
71GetTelemetrySubscriptions—🟡no-op: accepted but no subscription pushed
72PushTelemetry—🟡no-op: accepted but metrics not processed

Transactions (unsupported) ​

The following APIs are not advertised in ApiVersions; clients enabling transactions fail fast.

KeyAPIStatus
24AddPartitionsToTxn❌
25AddOffsetsToTxn❌
26EndTxn❌
28TxnOffsetCommit❌
65DescribeTransactions❌
66ListTransactions❌

FindCoordinator returns a coordinator for transactions, but the subsequent transaction APIs fail immediately; InitProducerId supports idempotent mode only.

Share Group (KIP-932, unsupported) ​

All Share Group APIs are ❌ unsupported (ShareGroupHeartbeat / ShareGroupDescribe / ShareFetch / ShareAcknowledge / DescribeShareGroupOffsets / AlterShareGroupOffsets / DeleteShareGroupOffsets, etc.).

Further reading ​

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