Thanks everyone.

I took the suggestions and updated the KIP accordingly. Please let me know
if there is anything else I could improve on.

Regards,
Tina

On Sun, Jan 15, 2023 at 10:24 PM Ismael Juma <ism...@juma.me.uk> wrote:

> Hi Tina,
>
> See below.
>
> On Wed, Jan 11, 2023 at 3:03 AM Gantigmaa Selenge <gsele...@redhat.com>
> wrote:
>
> > I do like this idea, however when it's set to required, I wasn't sure how
> > the mirrormaker should have. It's probably not a great experience if
> > mirrormaker starts crashing at some point after it's already running due
> to
> > an incompatible broker version.
> >
>
> This would only happen if the user explicitly requests the strict required
> ("non fallback") mode. There are many reasons why one may want this: say
> you want to be sure that your system is not susceptible to the
> "alterConfigs" problems or you want to write a test that fails if
> "alterConfigs' is used.
>
>
> > If the incrementalAlterConfig request fails because the target cluster is
> > running an older version, then we could log a WARN message that says
> > something like  "The config to use incrementalAlterConfig API for syncing
> > topic configurations has been set to true however target cluster is
> running
> > incompatible version therefore using the legacy alterConfig API". This
> way
> > the Mirrormaker never has to stop working and makes the user aware of
> > what's being used.
>
>
> Logging statements are not great as the sole mechanism (although useful as
> a complementary one) since one cannot easily test against them and they're
> often missed alongside all the other logging statements.
>
>
> >   In this case, we also would not need 3 separate values
> > for the config, instead would use the original true or false values:
> > - true - > would use incrementalAlterConfig API, but if it's unavailable,
> > fallback to the legacy API
> > - false -> keep using the legacy API
> >
> > Set the flag to true by default and remove the config in 4.0.
> >
>
> But this means you have different behavior depending on the
> supported versions forever. Even though the config values are simpler, it's
> harder to reason about the behavior.
>
> > One suggestion: I'm not sure how concerned you are about people's ability
> > to migrate, but if you want to make it as smooth as possible, you could
> add
> > one more step. In the 4.0 release, while removing
> > `use.incremental.alter.configs`, you can also add
> > `use.legacy.alter.configs` to give users a path to continue using the old
> > behavior even after the default changes.
> >
> > If we implement the fallback logic as Ismael suggested above, I think we
> > would not need this extra flag later anymore.
> >
> > Please let me know what you think. Then I can go ahead and update the
> KIP.
>
>
> IncrementalAlterConfigs has been around since Apache Kafka 2.3, released in
> June 2019. By the time Apache Kafka 4.0 is released, it will have been at
> least 4.5 years. I think it's reasonable to set it as the new baseline and
> not maintain the fallback code. The key benefit is having behavior that is
> easy to reason about.
>
> Ismael
>

Reply via email to