Expand description
KIP-778 metadata.version feature-level model.
The canonical string<->integer-level table, mirrored byte-for-byte from
upstream Kafka’s MetadataVersion enum over the range Krabka advertises
([METADATA_VERSION_MIN, METADATA_VERSION_MAX]). JVM clients call
MetadataVersion.fromFeatureLevel(N) and throw on any level their enum does
not know, so the levels and X.Y-IVn names here MUST match upstream
exactly. Verify against MetadataVersion.java in Kafka’s server-common
module on trunk before editing: levels are never reused, so the table must
carry every level up to METADATA_VERSION_MAX, reserved ones included.
Structs§
- Metadata
Version - One
metadata.versionlevel: its integer feature level, canonicalX.Y-IVnname, shortX.Yform, and Kafka’sdidMetadataChangeflag.
Constants§
- CIDR_
ACL_ MIN_ LEVEL - Level at which ACL host patterns may be CIDR blocks (
4.4-IV1, KIP-1276). - CONTROLLER_
UNREGISTRATION_ MIN_ LEVEL - Level at which a controller may be unregistered (
4.4-IV2, KIP-1312): Kafka’sMetadataVersion.isControllerUnregistrationSupported. - CORDONED_
LOG_ DIRS_ MIN_ LEVEL - Level at which
RegisterBrokerRecordandBrokerRegistrationChangeRecordcarry KIP-1066 cordoned log directories (4.3-IV0). - DELEGATION_
TOKEN_ MIN_ LEVEL - Level at which
KRaftgained delegation tokens (3.6-IV2). - DIRECTORY_
ASSIGNMENT_ MIN_ LEVEL - Level at which partition directory assignments became part of the
KRaftmetadata records (3.7-IV2, KIP-858). - ELR_
DEFAULT_ METADATA_ LEVEL - Level at which
ELRV_1becomes the bootstrap default (4.1-IV0,EligibleLeaderReplicasVersion.ELRV_1’s bootstrap metadata version). - ELR_
MIN_ LEVEL - Level at which partition records gained KIP-966 eligible-leader fields
(
4.0-IV1). - ELR_
VERSION_ FEATURE - The
eligible.leader.replicas.versionfeature name (KIP-966). Gates the controller’s maintenance of eligible leader replicas. - ELR_
VERSION_ MAX - Maximum supported
eligible.leader.replicas.versionlevel:1,ELRV_1, which turns KIP-966 ELR maintenance on. - ELR_
VERSION_ MIN - Minimum supported
eligible.leader.replicas.versionlevel:0,ELRV_0, the level at which the controller keeps no ELR. - KRAFT_
VERSION_ FEATURE - KIP-853 Raft protocol and dynamic-membership feature.
- METADATA_
DOWNGRADE_ CAPABILITY_ FEATURE - Krabka registration-only marker for KIP-1155 downgrade support.
- METADATA_
DOWNGRADE_ CAPABILITY_ LEVEL - The only supported level of
METADATA_DOWNGRADE_CAPABILITY_FEATURE. - METADATA_
VERSION_ FEATURE - The
metadata.versionfeature name (KIP-584 / KIP-778). - METADATA_
VERSION_ MAX - Maximum supported level:
4.5-IV0, Kafka trunk’slatestTesting(the Kafka 4.5.0 release level, which changes no metadata record format). - METADATA_
VERSION_ MIN - Minimum supported level:
3.3-IV3(KRaftGA), the floor that real Kafka 4.0 supports. - ONLINE_
DOWNGRADE_ MIN_ LEVEL - Lowest level that supports controller registrations (
3.7-IV0). - SCRAM_
MIN_ LEVEL - Level at which
KRaftgained SCRAM credentials (3.5-IV2). - SHARE_
VERSION_ 2_ DEFAULT_ METADATA_ LEVEL - Level at which
share.version2 becomes the bootstrap default (4.4-IV0, trunk’sShareVersion.SV_2bootstrap metadata version, KIP-1191). - SHARE_
VERSION_ DEFAULT_ METADATA_ LEVEL - Level at which
share.version1 becomes the bootstrap default (4.2-IV0,ShareVersion.SV_1’s bootstrap metadata version, KIP-932 GA). - SHARE_
VERSION_ FEATURE - The
share.versionfeature name (KIP-932). Gates share-group membership. - SHARE_
VERSION_ MAX - Maximum supported
share.versionlevel:2, trunk’sShareVersion.SV_2(KIP-1191 dead-letter queues). - SHARE_
VERSION_ MIN - Minimum supported
share.versionlevel:0(feature disabled). - STREAMS_
VERSION_ DEFAULT_ METADATA_ LEVEL - Level at which
streams.version1 becomes the bootstrap default (4.2-IV1,StreamsVersion.SV_1’s bootstrap metadata version, KIP-1071 GA). - STREAMS_
VERSION_ FEATURE - The
streams.versionfeature name (KIP-1071). Gates the broker-side Streams rebalance protocol (StreamsGroupHeartbeat/StreamsGroupDescribe). - STREAMS_
VERSION_ MAX - Maximum supported
streams.versionlevel:1(KIP-1071 early access). - STREAMS_
VERSION_ MIN - Minimum supported
streams.versionlevel:0(feature disabled).
Functions§
- did_
metadata_ change - Kafka’s
didMetadataChangeflag forlevel, orNonefor a level outside the supported table. - from_
feature_ level - Look up a level by integer feature level.
Noneif outside the supported table. - from_
version_ string - Resolve a version string to a level.
- is_
supported_ level - True if
levelis within[METADATA_VERSION_MIN, METADATA_VERSION_MAX]. - metadata_
changed_ between - Kafka’s
MetadataVersion.checkIfMetadataChanged: whether moving betweenfromandto, in either direction, crosses a level that changed the metadata record format. Equal levels never do.