Skip to content

RobustMQ Kafka Protocol Support

This document lists the Kafka protocol APIs that RobustMQ needs to support as a Kafka Broker, along with their priority and description.

References:


1. Core Data Plane (Required)

API KeyAPI NameDescriptionSupported
0ProduceProducer writes messages
1FetchConsumer fetches messages
2ListOffsetsQuery topic/partition offsets (earliest / latest / by timestamp)
3MetadataFetch cluster topology, topic / partition / broker info on startup

2. Consumer Group Management (Required)

API KeyAPI NameDescriptionSupported
8OffsetCommitCommit consumed offsets
9OffsetFetchFetch committed offsets
10FindCoordinatorFind the Group / Transaction Coordinator broker
11JoinGroupJoin a consumer group, triggers rebalance
12HeartbeatConsumer heartbeat to maintain group membership
13LeaveGroupVoluntarily leave a consumer group
14SyncGroupSync partition assignment after rebalance
15DescribeGroupsQuery consumer group state
16ListGroupsList all consumer groups
42DeleteGroupsDelete consumer groups
47OffsetDeleteDelete committed offsets

3. Connection & Authentication (Required)

API KeyAPI NameDescriptionSupported
17SaslHandshakeSASL authentication handshake, selects mechanism
18ApiVersionsFirst request after connection, negotiates supported API versions
36SaslAuthenticateSASL token exchange (used with SaslHandshake v1+)

4. Topic / Partition Management (Required)

API KeyAPI NameDescriptionSupported
19CreateTopicsCreate topics
20DeleteTopicsDelete topics
21DeleteRecordsDelete records before a given offset in a partition
37CreatePartitionsIncrease partition count

5. Configuration Management (Required)

API KeyAPI NameDescriptionSupported
32DescribeConfigsQuery topic / broker configuration
33AlterConfigsModify configuration
44IncrementalAlterConfigsIncrementally modify configuration (recommended over AlterConfigs)

6. Transaction Support (Exactly-Once, Optional)

API KeyAPI NameDescriptionSupported
22InitProducerIdObtain producer id (required for idempotent / transactional produce)
24AddPartitionsToTxnAdd partitions to a transaction
25AddOffsetsToTxnAdd consumer offsets to a transaction
26EndTxnCommit or abort a transaction
28TxnOffsetCommitCommit offsets within a transaction
65DescribeTransactionsQuery transaction state
66ListTransactionsList all transactions

7. ACL Access Control (Optional)

API KeyAPI NameDescriptionSupported
29DescribeAclsQuery ACL rules
30CreateAclsCreate ACL rules
31DeleteAclsDelete ACL rules

8. Quota Management (Optional)

API KeyAPI NameDescriptionSupported
48DescribeClientQuotasQuery client quotas
49AlterClientQuotasModify client quotas
50DescribeUserScramCredentialsQuery SCRAM credential info
51AlterUserScramCredentialsModify SCRAM credentials

9. Delegation Token Authentication (Optional)

API KeyAPI NameDescriptionSupported
38CreateDelegationTokenCreate a delegation token
39RenewDelegationTokenRenew a delegation token
40ExpireDelegationTokenExpire a delegation token
41DescribeDelegationTokenQuery delegation token info

10. Client Telemetry (Optional, KIP-714)

API KeyAPI NameDescriptionSupported
71GetTelemetrySubscriptionsGet client telemetry subscription config
72PushTelemetryClient pushes telemetry metrics
74ListConfigResourcesList configuration resources

11. Operations & Administration (Optional)

API KeyAPI NameDescriptionSupported
23OffsetForLeaderEpochUsed by follower / consumer for leader epoch validation
34AlterReplicaLogDirsMigrate log directories
35DescribeLogDirsQuery log storage directory info
43ElectLeadersManually trigger leader election
45AlterPartitionReassignmentsReassign partition replicas
46ListPartitionReassignmentsQuery partition reassignment progress
57UpdateFeaturesUpdate broker feature flags
60DescribeClusterQuery cluster information
61DescribeProducersQuery active producer information
75DescribeTopicPartitionsQuery topic partition details

12. Next-Generation Consumer Group Protocol (Optional, KIP-848)

API KeyAPI NameDescriptionSupported
68ConsumerGroupHeartbeatNew consumer group protocol heartbeat
69ConsumerGroupDescribeNew consumer group query

13. Share Group (Optional, KIP-932, Kafka 4.0+)

Share Group is a new consumption model introduced in Kafka 4.0, supporting shared message consumption (non-exclusive partitions):

API KeyAPI NameDescriptionSupported
76ShareGroupHeartbeatShare Group heartbeat
77ShareGroupDescribeQuery Share Group state
78ShareFetchShare Group fetch messages
79ShareAcknowledgeShare Group acknowledge messages
90DescribeShareGroupOffsetsQuery Share Group offsets
91AlterShareGroupOffsetsModify Share Group offsets
92DeleteShareGroupOffsetsDelete Share Group offsets

14. Not Required (KRaft / Internal Cluster Communication)

The following APIs are used only for Kafka internal cluster communication (replica management, KRaft elections, Controller communication). RobustMQ does not need to implement these:

API KeyAPI NameDescription
4LeaderAndIsrInter-broker replica management
5StopReplicaInter-broker stop replica
6UpdateMetadataController broadcasts metadata
7ControlledShutdownOrderly broker shutdown
27WriteTxnMarkersTransaction Coordinator writes to broker (internal)
52VoteKRaft voting
53BeginQuorumEpochKRaft
54EndQuorumEpochKRaft
55DescribeQuorumKRaft quorum state
56AlterPartitionKRaft ISR change
58EnvelopeController request forwarding
59FetchSnapshotKRaft log snapshot
62BrokerRegistrationKRaft broker registration
63BrokerHeartbeatKRaft broker heartbeat
64UnregisterBrokerKRaft broker deregistration
67AllocateProducerIdsKRaft Controller allocates Producer IDs
70ControllerRegistrationKRaft Controller registration
73AssignReplicasToDirsInternal replica directory assignment
80AddRaftVoterKRaft
81RemoveRaftVoterKRaft
82UpdateRaftVoterKRaft
83InitializeShareGroupStateShare Group state internal storage
84ReadShareGroupStateShare Group state internal read
85WriteShareGroupStateShare Group state internal write
86DeleteShareGroupStateShare Group state internal delete
87ReadShareGroupStateSummaryShare Group state summary internal read

Implementation Roadmap

Phase 1: Standard Client Compatibility

After implementing the following APIs, standard Kafka producer / consumer clients will work correctly:

text
ApiVersions(18) → Metadata(3) → SaslHandshake(17) / SaslAuthenticate(36)
→ Produce(0) / Fetch(1) / ListOffsets(2)
→ FindCoordinator(10) → JoinGroup(11) / SyncGroup(14) / Heartbeat(12) / LeaveGroup(13)
→ OffsetCommit(8) / OffsetFetch(9)
→ CreateTopics(19) / DeleteTopics(20) → DescribeConfigs(32)

Approximately 20 APIs in total.

Phase 2: Transaction Support

Add transaction-related APIs on top of Phase 1 (22, 24, 25, 26, 28, 65, 66).

Phase 3: Full Management Coverage

Complete ACL, Quota, and operations management APIs.