I think you can start the vote, we can always return to the discussion if
someone raises a
concern during voting.

Anyways I think/hope this won't be too controversial since we went through
and agreed on
a similar interface not long ago with KIP-659
<https://cwiki.apache.org/confluence/display/KAFKA/KIP-659%3A+Improve+TimeWindowedDeserializer+and+TimeWindowedSerde+to+handle+window+size>

On Sat, Apr 3, 2021 at 4:26 AM Sagar <sagarmeansoc...@gmail.com> wrote:

> Thanks Leah/Sophie.
>
> I have updated the KIP with the new config.
>
> Do you think we can proceed with the voting process for the KIP or should
> we wait a bit longer?
>
> Thanks!
> Sagar.
>
> On Fri, Apr 2, 2021 at 11:59 PM Sophie Blee-Goldman
> <sop...@confluent.io.invalid> wrote:
>
> > 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