Thank you Sophie and Bruno for finding a nice way forward keeping developers and users happy.
Updated the KIP to reflect the changes only from 4.0. Regards, Murali On Tue, Jul 2, 2024 at 8:18 AM Bruno Cadonna <cado...@apache.org> wrote: > Hi Sophie, > > I totally agree on evaluating the impact case by case! > > Nobody brushed any concerns under any rug. It was merely a concern about > a valid concern. I am sorry if it came across as brushing. > > Great that we found a viable solution! > > Best, > Bruno > > > > On 7/2/24 1:01 AM, Sophie Blee-Goldman wrote: > > 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 > >>>>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>> > >>>> > >>> > >> > > >