Status

Current state: Under Discussion

Discussion thread: WIP

JIRA:

Motivation

Kafka allows users to configure its behavior through multiple methods:

However, there is no standardized or consistent approach for determining which source takes precedence when multiple are provided simultaneously. This inconsistency can cause user confusion and make the system more bug-prone. This KIP aims to establish a clear and uniform priority order for property loading.

Public Interfaces

The priority order for loading properties into Kafka configurations is as follows:

  1. Command line arguments
  2. Configuration files
  3. Default values

Command line arguments (if allowed) have the highest priority, and default values have the lowest.

Proposed Changes

Tools that can be configured through both command line arguments and configuration files should be adjusted accordingly

The following tools will be updated:

Compatibility, Deprecation, and Migration Plan

Impact: Existing users who might have configured their settings based on the tools, which implementing their own loading order, rather than the priority proposed here, would be impacted.

Test Plan

Unit tests will be added to ensure that the properties are loaded according to the priority order as proposed.

Rejected Alternatives

1. Allowing Customizable Property Precedence