Hi Omnia, Thanks for taking this on! I have some thoughts but the general approach looks good.
1. Default value One thing I'm wrestling with is what the default value of the new property should be. I know on the Jira ticket I proposed that it should be false, but I'm having second thoughts. Technically we'd preserve backward compatibility with pre-KIP-690 releases by defaulting to false, but at the same time, we'd break compatibility with post-KIP-690 releases. And if we default to true, the opposite would be true: compatibility would be broken with pre-KIP-690 releases, but preserved with post-KIP-690 releases. One argument against defaulting to false (which, again, would preserve the behavior of MM2 before we accidentally broke compatibility with KIP-690) is that this change could possibly cause a single MM2 setup to break twice--once when upgrading from a pre-KIP-690 release to an existing release, and again when upgrading from that existing release to a version that reverted (by default) to pre-KIP-690 behavior. On the other hand, if we default to true (which would preserve the existing behavior that breaks compatibility with pre-KIP-690 releases), then any given setup will only be broken once. In addition, if we default to true right now, then we don't have to worry about changing that default in 4.0 to a more intuitive value (I hope we can all agree that, for new clusters, it makes sense to set this property to true and not to distinguish between internal and non-internal topics). With that in mind, I'm now leaning more towards defaulting to true, but would be interested in your thoughts. 2. Backport? It's highly unlikely to backport changes for a KIP, but given the impact of the compatibility break that we're trying to address here, and the extremely low risk of the proposed changes, I think we should consider backporting the proposed fix to all affected release branches (i.e., 3.1 through 3.5). 3. Extra steps I also think we can take these additional steps to try to help prevent users from being bitten by this change: - Add a note to our upgrade instructions [1] for all affected versions that instructs users on how to safely upgrade to a post-KIP-690 release, for versions that both do and do not include the changes from this KIP - Log a warning message on MM2 startup if the config contains an explicit value for "replication.policy.separator" but does not contain an explicit value for "replication.policy.internal.topic.separator.enabled" These details don't necessarily have to be codified in the KIP, but they're worth taking into account when considering how to design any functional changes in order to better try to gauge how well this could go for our users. [1] - https://kafka.apache.org/documentation.html#upgrade Thanks again for the KIP! Cheers, Chris On Fri, Jul 7, 2023 at 10:12 AM Omnia Ibrahim <o.g.h.ibra...@gmail.com> wrote: > Hi everyone, > I want to start the discussion of the KIP-949. The proposal is here > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-949%3A+Add+flag+to+enable+the+usage+of+topic+separator+in+MM2+DefaultReplicationPolicy > < > https://cwiki.apache.org/confluence/display/KAFKA/KIP-949%3A+Add+flag+to+enable+the+usage+of+topic+separator+in+MM2+DefaultReplicationPolicy > > > > Thanks for your time and feedback. > Omnia >