...
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?
...