Thanks Sagar, these changes make sense to me. I don't think we need to call
for a
new vote unless there are any concerns raised, but I feel this is probably
not
too controversial.

Thanks for the update

On Fri, Apr 23, 2021 at 3:17 AM Sagar <sagarmeansoc...@gmail.com> wrote:

> Hi All,
>
> After working on the changes proposed in the KIP, it was pointed out by
> Sophie that the KIP needs to be upgraded to include Serialisers as well. In
> line with this, I. have updated the KIP with the following changes:
>
> 1) Renamed the newly proposed config window.inner.class.deserialiser to
> windowed.inner.class.serde. 2 changes here are => changed window to
> windowed and replaced deserialiser with serde. The second change will
> ensure the config works for both serialisers and deserialisers.
> 2).Added  better formatting in the page to make it more readable.
>
> i am not sure if we will need a new vote for these so please let me know!
>
> Thanks!
> Sagar.
>
> On Sun, Apr 4, 2021 at 7:55 AM Sophie Blee-Goldman
> <sop...@confluent.io.invalid> wrote:
>
> > 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