Versions Compared

Key

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

...

Public Interfaces

This KIP proposes to use migrate to incrementalAlterConfigs API instead of the deprecated alterConfigs API in MirrorMaker for syncing topic configurations in MirrorMaker. The incrementalAlterConfigs API has been used for a long time around for several years since it was introduced in Kafka 2.3.0 and addresses the shortcoming of the deprecated alterConfigs API. In order to not break the compatibility, we will introduce a new configuration to MirrorMaker connector to give the option to enable using incrementalAlterConfigs API for syncing topic configurations. This new configuration is expected to serve as a temporary measure until the next major release when incrementalAlterConfigs API is always used. 

Briefly list any new interfaces that will be introduced as part of this proposal or any existing interfaces that will be removed or changed. The purpose of this section is to concisely call out the public contract that will come along with this feature.

A public interface is any change to the following:

  • Binary log format

  • The network protocol and api behavior

  • Any class in the public packages under clientsConfiguration, especially client configuration

    • org/apache/kafka/common/serialization

    • org/apache/kafka/common

    • org/apache/kafka/common/errors

    • org/apache/kafka/clients/producer

    • org/apache/kafka/clients/consumer (eventually, once stable)

  • Monitoring

  • Command line tools and arguments

  • Anything else that will likely break existing users in some way when they upgrade

Proposed Changes

...

Proposed Changes

1) A new configuration setting:

Name: enable.incremental.alter.configs

Description: Deprecated. Whether to automatically use incrementalAlterConfigs API for syncing topic configurations. This configuration will be removed in Kafka 4.0 and the incrementalAlterConfigs API will be used by default. Users should make sure that the target cluster is running at least Kafka 2.1.0 or later. 

Type: Boolean

Default: false

Update Mode: 

When set to false, MirrorMaker will keep using deprecated alterConfigs API for syncing topic configurations.

When explicitly set to true, MirrorMaker will use incrementalAlterConfigs API for syncing topic configurations. If it receives an error from an incompatible broker, the MirrorMaker will report this to the user and fail the connector. 

2) Add 

Compatibility, Deprecation, and Migration Plan

  • What impact (if any) will there be on existing users?
  • If we are changing behavior how will we phase out the older behavior?
  • If we need special migration tools, describe them here.
  • When will we remove the existing behavior?

...