Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This KIP proposes to deprecate the broker.id server configuration property in Apache Kafka 4.3 4 and remove it in Apache Kafka 5.0.

Config

Default

4.34

5.0

broker.id

-1

Deprecated

Removed

node.id

(required)

No change

No change

...

The behavior is the same for all process.roles (broker, controller, or combined). No changes to public APIs, network protocols, metrics, or command-line tools.

Proposed Changes

Phase 1: Deprecation (Apache Kafka 4.

...

4)

  1. Log deprecation warning: When broker.id is explicitly set in the server configuration, log a WARN-level message at startup:
    Code Block
    The 'broker.id' configuration is deprecated and will be removed in Apache Kafka 5.0. Please use 'node.id' instead.
    
  2. Preserve backward compatibility: The existing synonym mechanism will continue to function. Users who only set broker.id will still have it automatically copied to node.id. The validation requiring both to be equal (if both are explicitly set) also remains unchanged.

...

Configuration

Current (4.0 ~ 4.2)

Phase 1: Deprecated (4.3 4 ~ 4.x)

Phase 2: Removed (5.0)

Only node.id set

Valid

Valid

Valid

Only broker.id set

Valid; node.id is auto-populated from broker.id

Valid + broker.id deprecation warning; node.id is auto-populated from broker.id

ConfigException: node.id is required

Both set, same value

Valid

Valid + broker.id deprecation warning

Valid; broker.id is ignored

Both set, different values

ConfigException: node.id must equal broker.id

ConfigException: node.id must equal broker.id

Valid; broker.id is ignored

Neither set

ConfigException: node.id is required

ConfigException: node.id is required

ConfigException: node.id is required

...

Downgrading from 5.0 to 4.x is safe as long as the same configuration file is used — any config that was valid on 4.x before the upgrade remains valid after the rollback. The only edge case is if broker.id and node.id are set to different values on a 5.0 binary (where broker.id is ignored) and then downgraded to 4.x, which would result in a ConfigException. In practice, this cannot happen if the config was originally used on 4.x.

Test Plan

Phase 1: Deprecation (Apache Kafka 4.

...

4)

Unit tests to verify:

  • A deprecation warning is logged when broker.id is explicitly set (with or without node.id).
  • Backward compatibility: setting only broker.id still works (existing tests in KafkaConfigTest already create configs with only broker.id set).

...