Thanks Bruno -- I think shipping this with 4.0 when most users will expect
to
need code changes anyway is a good compromise. I'm happy to change my
position and cast a +1 vote on this. I suppose we will just need to wait a
few
weeks to actually merge these changes, given the interim short-cycle 3.9
release we're doing before 4.0?

However, I do want to address this:

what I do not like about the
> concern is that it blocks us from ever changing low priority stuff in
> the code base. Which IMO is bad from a maintainability perspective.
>

First off, I wholeheartedly agree that we should not block changes just
because
they are low priority. I hope that goes without saying :)

But my position was not "we should never do anything that disrupts users
unless
it's high priority" -- all I'm saying is that "we should evaluate each
proposal and
weigh the potential benefits against the potential cost and/or risks", and
take
things on a case by case basis, which I hope we can all agree on.

In sum: we should be careful not to put undue burden on our users just to
make
ourselves happy. It's up to us to have that discussion each time and I
don't think
it's fair to brush the concerns about a specific case under the rug in the
name of not
blocking low-priority changes in the future.

Anyways, I'll follow up on the vote thread to give this a +1. Whoever
reviews this,
please take care to time the merging of any PRs around (ie after) the 3.9
branch cut

Thanks all,
Sophie

On Mon, Jul 1, 2024 at 2:28 AM Bruno Cadonna <cado...@apache.org> wrote:

> Hi Sophie,
>
> Thank you for your analysis!
>
> I understand your valid concerns. However, what I do not like about the
> concern is that it blocks us from ever changing low priority stuff in
> the code base. Which IMO is bad from a maintainability perspective.
>
> I agree that the change makes primarily us happy in short-term, but more
> precise naming makes our users happy as well in the long run, expecially
> the ones that newly join our otter-club.
>
> I also think that people that set their builds to fail for deprecated
> parts, expect to change code when they use a new version of Kafka
> Streams. The users that do not let their builds fail for deprecations
> have to change their code anyways when they switch to a new major release.
>
> I empathize with the effort to minimize the work for our users, so my
> proposal would be to ship this KIP with a release where we have other
> wide radius deprecations and changes that our users need to do. For
> example, we could ship the deprecated property names with 4.0. I guess
> users need to change a couple of things in their code when they switch
> to 4.0, so those deprecations will carry (almost) no weight.
>
> What do you think?
>
> Best,
> Bruno
>
>
> On 6/15/24 8:58 AM, Sophie Blee-Goldman wrote:
> > I think we should pause for a minute and have an honest conversation
> about
> > whether the benefits of making this change outweigh the negatives. Here's
> > my quick roundup of the positives and negatives, feel free to add to this
> > list if there's else you think should be considered but then let's
> evaluate
> > things.
> >
> > Pros:
> > -general agreement that the "default" prefix is inaccurate
> > -one/two line change to update this code
> >
> > Cons:
> > - A very large number of people set these configs and would all need to
> > update their code (either when we eventually remove the old deprecated
> > configs or right away to fix the deprecation warning. So while this is
> not
> > a very "deep" disruption in that it's a small change, it's likely to be
> an
> > extremely "wide" disruption in that many people are impacted
> > - This change is objectively rather trivial, and people might be annoyed
> > and/or confused as to why they need to make code changes for something so
> > small
> > - There seems to be no harm whatsoever done by the current state of
> things,
> > as I have never once heard anyone complain or misinterpret the meaning of
> > these configs due to the "default" prefix. So is this solving a problem
> > that doesn't exist and just being pedantic in a way that is going to
> affect
> > many users?
> >
> > I won't vote -1 on this and am happy to let it go through if others are
> > strongly in favor. Just wanted to share my two cents and see if this
> > resonates with anyone else. Because to me, it kind of feels like we're
> > doing this to make ourselves happy, not our users. And I don't think we
> > should be flippant about the user experience like this
> >
> > On Fri, Jun 14, 2024 at 3:39 PM Matthias J. Sax <mj...@apache.org>
> wrote:
> >
> >>> *`DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_DOC` is private and does
> >>> notneed to be covered in the KIP technically -- it's ok to just leave
> it
> >>> inof course.*
> >>>
> >>> Yea, technically it has no implications, but as we are anyways touching
> >>> code around this, could it be better to rename ?
> >>
> >> Yes, we should still rename it. I was just pointing out, that the KIP
> >> does technically not need to mention this as all, as it's an internal
> >> change.
> >>
> >>
> >> I think you can start a VOTE for this KIP, too.
> >>
> >>
> >>
> >> -Matthias
> >>
> >>
> >> On 6/14/24 1:35 PM, Muralidhar Basani wrote:
> >>> Thanks Matthias and Nick.
> >>>
> >>> Regarding the prefix "uncaught." is fine with me too, but any other
> >>> opinions on this one ?
> >>>
> >>> *101 follow-up:*
> >>>
> >>> *Given that `DESERIALIZATION_EXCEPTION_HAN**DLER_CLASS_DOC` is public
> we*
> >>> *cannot just rename it, but must follow the same deprecation pattern
> as*
> >>> *for the config name itself. (It seems it was added as public by
> >> mistake,*
> >>> *and the new variable for the _DOC string should be private...)*
> >>>
> >>> Agree, as DESERIALIZATION_EXCEPTION_HANDLER_CLASS_DOC is public, we
> shall
> >>> deprecate it. Updated kip.
> >>>
> >>>
> >>>
> >>> *`DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_DOC` is private and does
> >>> notneed to be covered in the KIP technically -- it's ok to just leave
> it
> >>> inof course.*
> >>>
> >>> Yea, technically it has no implications, but as we are anyways touching
> >>> code around this, could it be better to rename ?
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> *102 follow-up:I believe for other config, we actually use the new
> config
> >>> if it's set,and only fall back to the old config if the new one is not
> >> set.
> >>> If bothare set, the new one wins and we just log a WARN that the old
> one
> >>> isignored in favor of the new one. -- It might be best to stick
> >>> theestablished pattern?*
> >>>
> >>> Agree, we should follow the same pattern. Updated kip.
> >>>
> >>> Thanks,
> >>> Murali
> >>>
> >>> On Fri, Jun 14, 2024 at 3:12 AM Matthias J. Sax <mj...@apache.org>
> >> wrote:
> >>>
> >>>> Using `uncaught.` prefix would be fine with me. (Even if I find it a
> >>>> little be redundant personally?)
> >>>>
> >>>>
> >>>>
> >>>> 101 follow-up:
> >>>>
> >>>> Given that `DESERIALIZATION_EXCEPTION_HANDLER_CLASS_DOC` is public we
> >>>> cannot just rename it, but must follow the same deprecation pattern as
> >>>> for the config name itself. (It seems it was added as public by
> mistake,
> >>>> and the new variable for the _DOC string should be private...)
> >>>>
> >>>> -> actually compare KIP-1053 (old incorrect number 1052) "Align the
> >>>> naming convention for config and default variables in *Config classes"
> >>>> for a related discussion.
> >>>>
> >>>>
> >>>> `DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_DOC` is private and does
> not
> >>>> need to be covered in the KIP technically -- it's ok to just leave it
> in
> >>>> of course.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> 102 follow-up:
> >>>>
> >>>>> But if user sets both old and new configs, a ConfigException to be
> >>>> thrown.
> >>>>
> >>>> I believe for other config, we actually use the new config if it's
> set,
> >>>> and only fall back to the old config if the new one is not set. If
> both
> >>>> are set, the new one wins and we just log a WARN that the old one is
> >>>> ignored in favor of the new one. -- It might be best to stick the
> >>>> established pattern?
> >>>>
> >>>>
> >>>>
> >>>> -Matthias
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 6/13/24 3:14 AM, Nick Telford wrote:
> >>>>> Hi everyone,
> >>>>>
> >>>>> On a semantic note, would it perhaps make more sense to rename them "
> >>>>> uncaught." instead? These handlers are essentially the "last resort"
> >>>>> exception handlers, because Exceptions can be caught *within* a
> >>>> component,
> >>>>> e.g. a Deserializer can catch and handle an exception without the
> >>>>> configured default.deserialization.exception.handler being invoked.
> >>>>>
> >>>>> I think this would better align these with JVM norms, e.g.
> >>>>> Thread#setUncaughtExceptionHandler, which behaves the same (albeit
> >>>>> configured through code).
> >>>>>
> >>>>> Regards,
> >>>>> Nick
> >>>>>
> >>>>> On Thu, 13 Jun 2024 at 10:22, Muralidhar Basani
> >>>>> <muralidhar.bas...@aiven.io.invalid> wrote:
> >>>>>
> >>>>>> Thanks Matthias and Greg.
> >>>>>>
> >>>>>> Have updated the KIP based on Matthias's comments.
> >>>>>>
> >>>>>>>> 100: Config names are part of the public interface, and the KIP
> >> should
> >>>>>>>> not say "none" in this section, but call out which configs are
> >>>>>>>> deprecated and which ones are newly added.
> >>>>>>
> >>>>>> Updated kip.
> >>>>>>
> >>>>>>
> >>>>>>>> 101: Nit. In "Propose Changes" there is the template placeholder
> >> text
> >>>>>>>>
> >>>>>>>>> Describe the new thing you want to do in appropriate detail. This
> >> may
> >>>>>> be
> >>>>>>>> fairly extensive and have large subsections of its own. Or it may
> >> be a
> >>>>>> few
> >>>>>>>> sentences. Use judgement based on the scope of the change.
> >>>>>>>>
> >>>>>>>> Similarly in "Test Plan" section
> >>>>>>>>
> >>>>>>
> >>>>>> Updated kip.
> >>>>>>
> >>>>>>
> >>>>>>>> 102: The "Deprecation" section should explain the behavior if
> both,
> >>>> old
> >>>>>>>> and new configs, are set.
> >>>>>>
> >>>>>> Updated kip. I think a ConfigException has to be thrown here if both
> >>>>>> configs are set.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Murali
> >>>>>>
> >>>>>> On Thu, Jun 13, 2024 at 2:28 AM Matthias J. Sax <mj...@apache.org>
> >>>> wrote:
> >>>>>>
> >>>>>>> Thanks Greg, this is a valid idea.
> >>>>>>>
> >>>>>>> However, there was no demand in the past to allow for error handler
> >>>>>>> callbacks in a fine grained manner, and I am frankly also not sure
> if
> >>>> it
> >>>>>>> would make sense or would be required.
> >>>>>>>
> >>>>>>> Thus, I am not concerned about this case, and believe this KIP does
> >>>> make
> >>>>>>> sense.
> >>>>>>>
> >>>>>>> Happy to change my mind if somebody has a different opinion. We
> could
> >>>>>>> re-purpose this KIP to add per-topic error handler, too.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> -Matthias
> >>>>>>>
> >>>>>>> On 6/12/24 1:11 PM, Greg Harris wrote:
> >>>>>>>> Hi Murali,
> >>>>>>>>
> >>>>>>>> Thanks for the KIP!
> >>>>>>>>
> >>>>>>>> I'm not familiar with Streams so I'll pose a general question,
> open
> >>>> for
> >>>>>>>> anyone to answer:
> >>>>>>>>
> >>>>>>>> The configs that are being changed don't currently accept in-place
> >>>>>>>> overwrites in the code, so the "default.*" prefix doesn't make
> >> sense.
> >>>>>>> Could
> >>>>>>>> there be a KIP to accept in-place overwrites in the future, such
> >> that
> >>>>>> the
> >>>>>>>> "default.*" prefix would make sense?
> >>>>>>>> If so, this KIP would make that other KIP harder to implement, as
> we
> >>>>>>> would
> >>>>>>>> have already recommended everyone to move off of the "default.*
> >>>> prefix.
> >>>>>>> Or
> >>>>>>>> to put it another way, this KIP closes doors rather than opening
> >> them.
> >>>>>>>>
> >>>>>>>> Or at least that's how it looks to a Streams outsider. I'm happy
> to
> >>>>>> defer
> >>>>>>>> to the experts in this case :)
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> Greg
> >>>>>>>>
> >>>>>>>> On Mon, Jun 10, 2024 at 3:47 PM Matthias J. Sax <mj...@apache.org
> >
> >>>>>>> wrote:
> >>>>>>>>
> >>>>>>>>> Thanks for the KIP Murali,
> >>>>>>>>>
> >>>>>>>>> Overall LGTM. A few comments.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 100: Config names are part of the public interface, and the KIP
> >>>> should
> >>>>>>>>> not say "none" in this section, but call out which configs are
> >>>>>>>>> deprecated and which ones are newly added.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 101: Nit. In "Propose Changes" there is the template placeholder
> >> text
> >>>>>>>>>
> >>>>>>>>>> Describe the new thing you want to do in appropriate detail.
> This
> >>>> may
> >>>>>>> be
> >>>>>>>>> fairly extensive and have large subsections of its own. Or it may
> >> be
> >>>> a
> >>>>>>> few
> >>>>>>>>> sentences. Use judgement based on the scope of the change.
> >>>>>>>>>
> >>>>>>>>> Similarly in "Test Plan" section
> >>>>>>>>>
> >>>>>>>>> Please remove both :)
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> 102: The "Deprecation" section should explain the behavior if
> both,
> >>>>>> old
> >>>>>>>>> and new configs, are set.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Thanks a lot!
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> -Matthias
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On 6/9/24 9:30 PM, Muralidhar Basani wrote:
> >>>>>>>>>> Hello all,
> >>>>>>>>>>
> >>>>>>>>>> With this KIP
> >>>>>>>>>> <
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1056%3A+Remove+%60default.%60+prefix+for+exception+handler+StreamsConfig
> >>>>>>>>>> ,
> >>>>>>>>>> I would like to mention that a couple of exception handler
> configs
> >>>> in
> >>>>>>>>>> StreamsConfig are defined as default configs, despite having no
> >>>>>>>>> alternative
> >>>>>>>>>> values. Hence would propose to deprecate them and introduce new
> >>>>>> configs
> >>>>>>>>>> without the 'default.' prefix.
> >>>>>>>>>>
> >>>>>>>>>> This KIP is briefly discussed here in the jira KAFKA-16853
> >>>>>>>>>> <https://issues.apache.org/jira/browse/KAFKA-16863> too.
> >>>>>>>>>>
> >>>>>>>>>> I would appreciate any feedback or suggestions you might have.
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>> Murali
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>

Reply via email to