Versions Compared

Key

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

Table of Contents

Status

Current stateAdopted

Under Discussion thread: here

Discussion Voting thread: pending here

JIRA:

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-12436

...

Currently there are two mirror-maker implementations, the original MirrorMaker and MirrorMaker 2 (MM2), the latter being a complete rewrite leveraging the Connect framework. We believe MirrorMaker 2 is an improvement over the original MirrorMaker when it comes to reliability and functionality for the majority of use cases. We intend to focus on MirrorMaker 2 for future development and hence we propose deprecating MirrorMaker 2 for future removalthe original first version of MirrorMaker with the intention to remove it completely in the future.

Public Interfaces

No API changes are proposed.

...

No functional changes at this point. In the subsequent major release (4.0), we can remove the legacy mirror-maker.sh command-line tool and related code entirely.

N.B. prior to removing MM1 (in v4.0) we will need to land IdentityReplicationPolicy (aka LegacyReplicationPolicy), as described in KIP-382, which provides for use-cases that MM2 cannot otherwise handle out-of-the-box. Various IdentityReplicationPolicy implementations can be found floating around in the meantime.

Rejected Alternatives

  • We could provide a shim between the legacy command-line tool and the new connect-based implementation, as originally proposed in KIP-382. However, given the length of time between major releases, it doesn't seem necessary to make the transition between MM1 and MM2 quite so frictionless. Instead, users will have a long time and ample warning to transition away from MM1 at their own pace. If, for some reason, a new major release lands sooner than expected, we can revisit this decision.