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