Yeah sure, window.inner.class.deserializer sounds good to me

On Fri, Apr 2, 2021 at 11:28 AM Leah Thomas <ltho...@confluent.io.invalid>
wrote:

> Hey Sagar,
>
> Thanks for picking this up! The proposal looks good to me after Sophie and
> John's changes.
>
> Cheers,
> Leah
>
> On Fri, Apr 2, 2021 at 6:21 AM Sagar <sagarmeansoc...@gmail.com> wrote:
>
> > Thanks John!
> >
> > Yeah I think window.inner.class.deserializer sounds good. Your thoughts
> > @Sophie?
> >
> > Thanks!
> > Sagar.
> >
> >
> > On Fri, Apr 2, 2021 at 5:23 AM John Roesler <vvcep...@apache.org> wrote:
> >
> > > Hi Sagar,
> > >
> > > I think this is a good proposal.
> > >
> > > The only change I might recommend is to change the config to more
> closely
> > > align with the other one, for example:
> “window.inner.class.deserializer”
> > >
> > > But it’s very minor; I leave it to your judgement.
> > >
> > > Thanks,
> > > John
> > >
> > > On Fri, Mar 26, 2021, at 03:36, Sagar wrote:
> > > > Hi Sophie,
> > > >
> > > > Thanks for the feedback! I have updated the KIP inline with whatever
> > you
> > > > suggested.
> > > >
> > > > Regarding point 5, I have added the note as it makes sense to not set
> > the
> > > > config via the KafkaStreams app.
> > > >
> > > > Thanks!
> > > > Sagar.
> > > >
> > > >
> > > > On Wed, Mar 24, 2021 at 7:52 AM Sophie Blee-Goldman
> > > > <sop...@confluent.io.invalid> wrote:
> > > >
> > > > > Hey Sagar,
> > > > >
> > > > > Thanks for the KIP! The overall proposal looks good to me, but I
> had
> > > some
> > > > > miscellaneous notes:
> > > > >
> > > > > 1) Some general KIP-writing advice:
> > > > >     - You don't need to list any implementation details, only
> public
> > > > > interfaces that are being added, modified, or
> > > > >       deprecated. It's better to describe your changes in words, or
> > > > > occasionally psuedo-code for more complicated
> > > > >       changes or algorithms. The KIP is a public contract, so you
> > > generally
> > > > > want to agree upon the high-level
> > > > >       proposal and avoid getting locked in to specific code which
> you
> > > may
> > > > > end up wanting to change once you
> > > > >       start on the PR.
> > > > >       In this KIP, you can remove the code block under
> > > > > *TimeWindowedDeserializer
> > > > > *and just describe the desired
> > > > >       semantics: eg that you should only use the constructor within
> > > > > Streams, the configs within the console consumer,
> > > > >       or either for a plain consumer client provided they match.
> > > > >       The code block under *StreamsConfig *however is a good
> example
> > of
> > > > > what should be in a KIP. Only one nit:
> > > > >       in the doc string, avoid saying "windowed key" and just say
> > > "windowed
> > > > > record" or something like that.
> > > > >     - The *Motivation* section should be focused on any background
> or
> > > > > additional context that's necessary to
> > > > >       understand the KIP, as well as the actual motivation for the
> > > change
> > > > > being proposed. So here, everything under
> > > > >       the second bullet which begins with "The KIP also introduces
> > > > > changes..." should be cut from that section and
> > > > >       discussed elsewhere.
> > > > >     - The *Proposed Changes* and *Public Interfaces* sections have
> a
> > > lot of
> > > > > overlap and repeated content. To be
> > > > >       honest I personally have struggled with deciding which
> section
> > to
> > > > > include something in, but a good rule of thumb
> > > > >       is to describe the actual changes in the *Proposed Changes*
> > > section,
> > > > > and then use the *Public Interfaces* section
> > > > >       to list any new or modified public APIs. In this case, I
> would
> > > move
> > > > > everything to the *Proposed Changes* section
> > > > >       except for the code block with the deprecated config(s) and
> the
> > > new
> > > > > config + doc string.
> > > > >
> > > > > 2) Can you make it clear that both
> *default.windowed.key.serde.inner*
> > > and
> > > > > *default.windowed.key.serde.inner *
> > > > > are being deprecated, and we're adding a new config called
> > > > > *windowed.deserializer.inner.class*, not literally
> > > > > renaming the existing *default.windowed.key.serde.inner* config? I
> > > think
> > > > > you're hinting at this in the
> > > > > *Compatibility, Deprecation, and Migration* section, but elsewhere
> in
> > > the
> > > > > KIP it's implied that we'll be replacing
> > > > > existing config which would break any applications that currently
> > rely
> > > on
> > > > > it. Please update the *Public Interfaces*
> > > > > and *Proposed Changes* sections to clarify that both of these
> configs
> > > will
> > > > > be deprecated.
> > > > >
> > > > > 3) At the end of this section you raise a question that I don't
> > think I
> > > > > quite understand, can you elaborate on this:
> > > > >
> > > > > We can maybe enforce the removal of the deprecated configs and then
> > > enforce
> > > > > > users?
> > > > > >
> > > > > Note: you only need to worry about deprecating these configs in the
> > > current
> > > > > KIP. Once deprecated we just need to
> > > > > give users enough time to migrate over to the new API, and then we
> > can
> > > > > remove them in the next major version.
> > > > > The important thing for the KIP itself is just to make sure the
> > change
> > > is
> > > > > visible to users and provides a clear
> > > > > migration path.
> > > > >
> > > > > 4) For the Console Consumer you say
> > > > >
> > > > > It would be mandatory to pass windowed.deserializer.inner.class and
> > > > > > window.size.ms config. <Need to check how to do this>
> > > > > >
> > > > >
> > > > > As I said above, you don't need to worry about putting how you'll
> > > implement
> > > > > this in the KIP document.  But to answer
> > > > > your implicit question, I actually don't think you need to do
> > anything
> > > > > special for the  console consumer -- the
> > > > > TimeWindowedDeserializer itself will verify that both its
> parameters
> > > have
> > > > > been set and throw an exception if not.
> > > > >
> > > > > 5) One last small suggestion: I think we should throw an exception
> > if a
> > > > > user has tried to use the new
> > > > > *windowed.deserializer.inner.class *config in their Kafka Streams
> > > > > application, since it's intended for use only
> > > > > with/for the plain consumer client. If you agree, this is something
> > > that
> > > > > should be noted in the KIP somewhere.
> > > > > It may also be a good idea to note this in the config doc string as
> > > well,
> > > > > so users don't try to use it as if it was a
> > > > > literal replacement of the *deprecated
> > > > > default.windowed.key.serde.inner* config.
> > > > > What do you think?
> > > > > (To clarify, I'm suggesting we check inside the KafkaStreams
> > > constructor
> > > > > and throw if this config is set, but this
> > > > > last bit doesn't need to go into the KIP as it's an implementation
> > > detail)
> > > > >
> > > > >
> > > > > Once you've addressed the above and cleaned the KIP up a bit, I'm
> +1
> > > -- the
> > > > > changes you propose make sense to me.
> > > > >
> > > > > Cheers,
> > > > > Sophie
> > > > >
> > > > > On Mon, Mar 22, 2021 at 3:28 AM Sagar <sagarmeansoc...@gmail.com>
> > > wrote:
> > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > I would like to start a discussion on the following KIP:
> > > > > >
> > > > > >
> > > > >
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=177047930
> > > > > >
> > > > > > Thanks!
> > > > > > Sagar.
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to