Back to Seaweedfs

Kafka API Version Matrix Audit

weed/mq/kafka/API_VERSION_MATRIX.md

4.233.4 KB
Original Source

Kafka API Version Matrix Audit

Summary

This document audits the advertised API versions in handleApiVersions() against actual implementation support in validateAPIVersion() and handlers.

Current Status: ALL VERIFIED ✅

API Version Matrix

API KeyAPI NameAdvertisedValidatedHandler ImplementedStatus
18ApiVersionsv0-v4v0-v4v0-v4✅ Match
3Metadatav0-v7v0-v7v0-v7✅ Match
0Producev0-v7v0-v7v0-v7✅ Match
1Fetchv0-v7v0-v7v0-v7✅ Match
2ListOffsetsv0-v2v0-v2v0-v2✅ Match
19CreateTopicsv0-v5v0-v5v0-v5✅ Match
20DeleteTopicsv0-v4v0-v4v0-v4✅ Match
10FindCoordinatorv0-v3v0-v3v0-v3✅ Match
11JoinGroupv0-v6v0-v6v0-v6✅ Match
14SyncGroupv0-v5v0-v5v0-v5✅ Match
8OffsetCommitv0-v2v0-v2v0-v2✅ Match
9OffsetFetchv0-v5v0-v5v0-v5✅ Match
12Heartbeatv0-v4v0-v4v0-v4✅ Match
13LeaveGroupv0-v4v0-v4v0-v4✅ Match
15DescribeGroupsv0-v5v0-v5v0-v5✅ Match
16ListGroupsv0-v4v0-v4v0-v4✅ Match
32DescribeConfigsv0-v4v0-v4v0-v4✅ Match
22InitProducerIdv0-v4v0-v4v0-v4✅ Match
60DescribeClusterv0-v1v0-v1v0-v1✅ Match

Implementation Details

Core APIs

  • ApiVersions (v0-v4): Supports both flexible (v3+) and non-flexible formats. v4 added for Kafka 8.0.0 compatibility.
  • Metadata (v0-v7): Full version support with flexible format in v7+
  • Produce (v0-v7): Supports transactional writes and idempotent producers
  • Fetch (v0-v7): Includes schema-aware fetching and multi-batch support

Consumer Group Coordination

  • FindCoordinator (v0-v3): v3+ supports flexible format
  • JoinGroup (v0-v6): Capped at v6 (first flexible version)
  • SyncGroup (v0-v5): Full consumer group protocol support
  • Heartbeat (v0-v4): Consumer group session management
  • LeaveGroup (v0-v4): Clean consumer group exit
  • OffsetCommit (v0-v2): Consumer offset persistence
  • OffsetFetch (v0-v5): v3+ includes throttle_time_ms, v5+ includes leader_epoch

Topic Management

  • CreateTopics (v0-v5): v2+ uses compact arrays and tagged fields
  • DeleteTopics (v0-v4): Full topic deletion support
  • ListOffsets (v0-v2): Offset listing for partitions

Admin & Discovery

  • DescribeCluster (v0-v1): AdminClient compatibility (KIP-919)
  • DescribeGroups (v0-v5): Consumer group introspection
  • ListGroups (v0-v4): List all consumer groups
  • DescribeConfigs (v0-v4): Configuration inspection
  • InitProducerId (v0-v4): Transactional producer initialization

Verification Source

All version ranges verified from handler.go:

  • SupportedApiKeys array (line 1196): Advertised versions
  • validateAPIVersion() function (line 2903): Validation ranges
  • Individual handler implementations: Actual version support

Last verified: 2025-10-13

Maintenance Notes

  1. After adding new API handlers, update all three locations:
    • SupportedApiKeys array
    • validateAPIVersion() map
    • This documentation
  2. Test new versions with kafka-go and Sarama clients
  3. Ensure flexible format support for v3+ APIs where applicable