If there are no further notes, I'll go ahead and start the voting thread
today.

Thanks,
Leah

On Thu, May 20, 2021 at 2:58 PM Leah Thomas <ltho...@confluent.io> wrote:

> Thanks for finding that, Guozhang. Consistency seems like the best option
> to me as well, for the time being.  I updated the KIP with that detail
>
> On Thu, May 20, 2021 at 11:53 AM Sophie Blee-Goldman
> <sop...@confluent.io.invalid> wrote:
>
>> Thanks Guozhang, I forgot about ConfigException. I actually just reviewed
>> two KIPs related to config-based Serdes,
>> both of which use the ConfigException in this way: the ListSerde KIP, and
>> the KIP to clean up the windowed inner class
>> serde configuration.
>>
>> For the sake of simplicity and keeping this KIP well-scoped, I would
>> prefer
>> to stick with the ConfigException for now,
>> since this is consistent with how these very similar cases are handled at
>> the moment. I would still stand by the idea
>> of introducing a dedicated SerdeConfigurationException (or similar) but I
>> think we can treat that as orthogonal, and
>> maybe do a followup KIP at some point to convert all of these relevant
>> cases over to a new Serde-specific exception
>>
>> On Thu, May 20, 2021 at 3:33 AM Bruno Cadonna <cado...@apache.org> wrote:
>>
>> > Hi,
>> >
>> > I think using ConfigException makes sense. But I am also fine with
>> > SerdeConfigurationException. I think both are meaningful in this
>> > situation where the former has the advantage that we do not need to
>> > introduce a new exception.
>> >
>> > Best,
>> > Bruno
>> >
>> >
>> >
>> >
>> > On 20.05.21 07:54, Guozhang Wang wrote:
>> > > Thanks Sophie. I think not piggy-backing on TopologyException makes
>> > sense.
>> > >
>> > > It just occurs to me that today we already have similar situations
>> even
>> > > with this config default to Bytes, that is the other
>> > > `DEFAULT_WINDOWED_KEY/VALUE_SERDE_INNER_CLASS` config, whose default
>> is
>> > > actually null. Quickly checking the code here, I think we throw
>> > > StreamsException when they are found not defined during runtime, we
>> > > actually throw the `*ConfigException*`. So for consistency we could
>> just
>> > > use that exception as well.
>> > >
>> > > Guozhang
>> > >
>> > >
>> > > On Wed, May 19, 2021 at 3:24 PM Sophie Blee-Goldman
>> > > <sop...@confluent.io.invalid> wrote:
>> > >
>> > >> To be honest I'm not really a fan of reusing the TopologyException
>> > since it
>> > >> feels like
>> > >> a bit of a stretch from a user point of view to classify Serde
>> > >> misconfiguration as a
>> > >> topology issue.
>> > >>
>> > >> I personally think a StreamsException would be acceptable, but I
>> would
>> > also
>> > >> propose
>> > >> to introduce a new type of exception, something like
>> > >> SerdeConfigurationException or
>> > >> so. We certainly don't want to end up like the Producer API with its
>> 500
>> > >> different
>> > >> exceptions. Luckily Streams is nowhere near that yet, in my opinion,
>> and
>> > >> problems
>> > >> with Serde configuration are so common and well-defined that a
>> dedicated
>> > >> exception
>> > >> feels very appropriate.
>> > >>
>> > >> If there are any other instances in the codebase where we throw a
>> > >> StreamsException
>> > >> for a Serde-related issue, this could also be migrated to the new
>> > exception
>> > >> type (not
>> > >> necessarily all at once, but gradually after this KIP)
>> > >>
>> > >> Thoughts?
>> > >>
>> > >> On Wed, May 19, 2021 at 10:31 AM Guozhang Wang <wangg...@gmail.com>
>> > wrote:
>> > >>
>> > >>> Leah, thanks for the KIP.
>> > >>>
>> > >>> It looks good to me overall, just following up on @
>> br...@confluent.io
>> > >>> <br...@confluent.io> 's question about exception: what about using
>> the
>> > >>> `TopologyException` class? I know that currently it is only thrown
>> > during
>> > >>> the topology parsing phase, not at the streams construction, but I
>> feel
>> > >> we
>> > >>> can extend its scope to cover both topology building and streams
>> object
>> > >>> (i.e. taking the topology and the config) construction time as well
>> > since
>> > >>> part of the construction is again to re-write / augment the
>> topology.
>> > >>>
>> > >>> Guozhang
>> > >>>
>> > >>>
>> > >>> On Wed, May 19, 2021 at 8:44 AM Leah Thomas
>> > <ltho...@confluent.io.invalid
>> > >>>
>> > >>> wrote:
>> > >>>
>> > >>>> Hi Sophie,
>> > >>>>
>> > >>>> Thanks for catching that. These are existing methods inside of
>> > >>>> `StreamsConfig` that will return null (the new default) instead of
>> > byte
>> > >>>> array serde (the old default). Both `StreamsConfig` and
>> > >>>> `defaultKeySerde`/`defaultValueSerde` are public, so I assume these
>> > >> still
>> > >>>> count as part of the public API. I updated the KIP to include this
>> > >>>> information.
>> > >>>>
>> > >>>> Bruno - I was planning on including a specific message with the
>> > streams
>> > >>>> exception to indicate that either a serde needs to be passed in or
>> a
>> > >>>> default needs to be set. I'm open to doing something more specific,
>> > >>>> perhaps something like a serde exception? WDYT? I was hoping that
>> with
>> > >>> the
>> > >>>> message the streams exception would still give enough information
>> for
>> > >>> users
>> > >>>> to debug the problem.
>> > >>>>
>> > >>>> Still hoping for a short discussion (; but thanks for the input so
>> > far!
>> > >>>>
>> > >>>> Leah
>> > >>>>
>> > >>>> On Wed, May 19, 2021 at 3:00 AM Bruno Cadonna <cado...@apache.org>
>> > >>> wrote:
>> > >>>>
>> > >>>>> Hey Leah,
>> > >>>>>
>> > >>>>>   > what I think should be a small discussion
>> > >>>>>
>> > >>>>> Dangerous words, indeed! It seems like they trigger something in
>> > >> people
>> > >>>> ;-)
>> > >>>>>
>> > >>>>> Jokes apart!
>> > >>>>>
>> > >>>>> Did you consider throwing a more specific exception instead of a
>> > >>>>> StreamsException? Something that describes better the issue at
>> hand.
>> > >>>>>
>> > >>>>> Best,
>> > >>>>> Bruno
>> > >>>>>
>> > >>>>>
>> > >>>>> On 19.05.21 01:19, Sophie Blee-Goldman wrote:
>> > >>>>>>>
>> > >>>>>>> what I think should be a small discussion
>> > >>>>>>
>> > >>>>>>
>> > >>>>>> Dangerous words :P
>> > >>>>>>
>> > >>>>>> I'm all for the proposal but I do have one question about
>> something
>> > >>> in
>> > >>>>> the
>> > >>>>>> KIP. You list two methods called
>> > >>>>>> defaultKeySerde() and defaultValueSerde() but it's not clear to
>> me
>> > >>>> where
>> > >>>>>> these are coming from. Are they
>> > >>>>>> new APIs you propose to add in this KIP? Are they existing
>> methods
>> > >> in
>> > >>>> the
>> > >>>>>> public API which will now return
>> > >>>>>> null, whereas they used to return the ByteArraySerde? If they're
>> > >> not
>> > >>> a
>> > >>>>>> public API then you can remove them
>> > >>>>>> from the KIP, otherwise can you just update this section to
>> clarify
>> > >>>> what
>> > >>>>>> class/file these belong to, etc?
>> > >>>>>>
>> > >>>>>> -Sophie
>> > >>>>>>
>> > >>>>>> On Tue, May 18, 2021 at 5:34 AM Leah Thomas
>> > >>>> <ltho...@confluent.io.invalid
>> > >>>>>>
>> > >>>>>> wrote:
>> > >>>>>>
>> > >>>>>>> Hi all,
>> > >>>>>>>
>> > >>>>>>> I'd like to kick-off what I think should be a small discussion
>> for
>> > >>>>> KIP-741:
>> > >>>>>>> Change default serde to be null.
>> > >>>>>>>
>> > >>>>>>> The wiki is here:
>> > >>>>>>>
>> > >>>>>>>
>> > >>>>>
>> > >>>>
>> > >>>
>> > >>
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-741%3A+Change+default+serde+to+be+null
>> > >>>>>>>
>> > >>>>>>>
>> > >>>>>>> Thanks,
>> > >>>>>>> Leah
>> > >>>>>>>
>> > >>>>>>
>> > >>>>>
>> > >>>>
>> > >>>
>> > >>>
>> > >>> --
>> > >>> -- Guozhang
>> > >>>
>> > >>
>> > >
>> > >
>> >
>>
>

Reply via email to