Documentation · Operations

Supported Kafka APIs

Every Kafka wire API Klamm speaks, with version ranges. Ranges are intersected with the upstream broker's advertised capabilities at connection time.

Version ranges are intersected with the upstream broker’s advertised capabilities at connection time. APIs not listed here are rejected by the proxy.

Data plane

APIVersions
Producev3–v12
Fetchv4–v18
ListOffsetsv1–v9
OffsetForLeaderEpochv3–v4

Metadata

APIVersions
Metadatav0–v13
DescribeClusterv0–v2
DescribeTopicPartitionsv0
ListConfigResourcesv1
FindCoordinatorv0–v6

Consumer groups

APIVersions
OffsetCommitv2–v9
OffsetFetchv1–v9
JoinGroupv0–v9
SyncGroupv0–v5
Heartbeatv0–v4
LeaveGroupv0–v5
ListGroupsv0–v5
DeleteGroupsv0–v2
DescribeGroupsv0–v6
ConsumerGroupHeartbeatv0–v1
ConsumerGroupDescribev0–v1
OffsetDeletev0

Transactions

APIVersions
InitProducerIdv0–v5
AddPartitionsToTxnv0–v5
AddOffsetsToTxnv0–v4
EndTxnv0–v5
TxnOffsetCommitv0–v5
DescribeProducersv0
ListTransactionsv0–v1
DescribeTransactionsv0

Topic and configuration admin

APIVersions
CreateTopicsv2–v7
DeleteTopicsv1–v6
CreatePartitionsv0–v3
DeleteRecordsv0–v2
DescribeConfigsv1–v4
AlterConfigsv0–v2
IncrementalAlterConfigsv0–v1

ACL admin (opt-in)

Available only when acl_admin.mode: broker-delegated is set in configuration. Without it, the proxy does not advertise these APIs and rejects requests that invoke them.

APIVersions
DescribeAclsv1–v3
CreateAclsv1–v3
DeleteAclsv1–v3

Quotas and credentials

APIVersions
DescribeClientQuotasv0–v1
AlterClientQuotasv0–v1
DescribeUserScramCredentialsv0
AlterUserScramCredentialsv0

Cluster topology (cross-cutting)

APIVersions
AlterPartitionReassignmentsv0–v1
ListPartitionReassignmentsv0
ElectLeadersv0–v2
AlterReplicaLogDirsv1–v2 (stubbed)
DescribeLogDirsv1–v4 (stubbed)

Authentication and negotiation

APIVersions
ApiVersionsv0–v4
SaslHandshakev0–v1
SaslAuthenticatev0–v2

Stubbed APIs

AlterReplicaLogDirs and DescribeLogDirs are answered locally and never forwarded to the broker. A genuine response from the broker would expose physical topic names under the __vt_{tenant}_* prefix and broker filesystem paths, both of which would leak cross-tenant state. Disk relocations also have no tenant semantics.

  • DescribeLogDirs returns an empty results: [] response and sets CLUSTER_AUTHORIZATION_FAILED in protocol versions that carry a top-level error code.
  • AlterReplicaLogDirs echoes the requested topic-partitions with per-partition CLUSTER_AUTHORIZATION_FAILED.

Tenants that rely on JBOD disk inspection or disk management will therefore see those calls fail rather than observe physical broker topology.

ListConfigResources scope

ListConfigResources is v1-only. Klamm filters and rewrites topic and group resources to the tenant namespace, keeps broker and broker-logger resources, and drops client-metrics resources until client telemetry / config-resource namespacing is designed.