So, what's next? It's my first KIP and I'm not familiar with all processes.

-Yuriy

On Mon, Jul 6, 2020 at 1:32 AM John Roesler <vvcep...@apache.org> wrote:

> Hi Yuriy,
>
> Thanks for the update! It looks good to me.
>
> Thanks,
> John
>
> On Sun, Jul 5, 2020, at 03:27, Yuriy Badalyantc wrote:
> > Hi John.
> >
> > I updated the KIP. An old proposed implementation is now in the rejected
> > alternatives.
> >
> > - Yuriy
> >
> > On Sun, Jul 5, 2020 at 12:03 AM John Roesler <vvcep...@apache.org>
> wrote:
> >
> > > Hi Yuriy,
> > >
> > > I agree, we can keep them separate. I just wanted to make you aware of
> it.
> > >
> > > Thanks for the PR, it looks the way I expected.
> > >
> > > I just read over the KIP document again. I think it needs to be
> updated to
> > > the current proposal, and then we’ll be able to start the vote.
> > >
> > > Thanks,
> > > John
> > >
> > > On Tue, Jun 30, 2020, at 04:58, Yuriy Badalyantc wrote:
> > > > Hi everybody!
> > > >
> > > > Looks like a discussion about KIP-513 could take a while. I think we
> > > should
> > > > move forward with KIP-616 without waiting for KIP-513.
> > > >
> > > > I created a new pull request for KIP-616:
> > > > https://github.com/apache/kafka/pull/8955. It contains a new
> > > > `org.apache.kafka.streams.scala.serialization.Serdes` object without
> name
> > > > clash. An old one was marked as deprecated. This change is backward
> > > > compatible and it could be merged in any further release.
> > > >
> > > > On Wed, Jun 3, 2020 at 12:41 PM Yuriy Badalyantc <lmne...@gmail.com>
> > > wrote:
> > > >
> > > > > Hi, John
> > > > >
> > > > > Thanks for pointing that out. I expressed my thoughts about
> KIP-513 and
> > > > > its connection to KIP-616 in the KIP-513 mail list.
> > > > >
> > > > > - Yuriy
> > > > >
> > > > > On Sun, May 31, 2020 at 1:26 AM John Roesler <vvcep...@apache.org>
> > > wrote:
> > > > >
> > > > >> Hi Yuriy,
> > > > >>
> > > > >> I was just looking back at KIP-513, and I’m wondering if there’s
> any
> > > > >> overlap we should consider here, or if they are just orthogonal.
> > > > >>
> > > > >> Thanks,
> > > > >> -John
> > > > >>
> > > > >> On Thu, May 28, 2020, at 21:36, Yuriy Badalyantc wrote:
> > > > >> > At the current moment, I think John's plan is better than the
> > > original
> > > > >> plan
> > > > >> > described in the KIP. I think we should create a new `Serdes` in
> > > another
> > > > >> > package. The old one will be deprecated.
> > > > >> >
> > > > >> > - Yuriy
> > > > >> >
> > > > >> > On Fri, May 29, 2020 at 8:58 AM John Roesler <
> vvcep...@apache.org>
> > > > >> wrote:
> > > > >> >
> > > > >> > > Thanks, Matthias,
> > > > >> > >
> > > > >> > > If we go with the approach Yuriy and I agreed on, to
> deprecate and
> > > > >> replace
> > > > >> > > the whole class and not just a few of the methods, then the
> > > timeline
> > > > >> is
> > > > >> > > less of a concern. Under that plan, Yuriy can just write the
> new
> > > class
> > > > >> > > exactly the way he wants and people can cleanly swap over to
> the
> > > new
> > > > >> > > pattern when they are ready.
> > > > >> > >
> > > > >> > > The timeline was more significant if we were just going to
> > > deprecate
> > > > >> some
> > > > >> > > methods and add new methods to the existing class. That plan
> > > requires
> > > > >> two
> > > > >> > > implementation phases, where we first deprecate the existing
> > > methods
> > > > >> and
> > > > >> > > later swap the implicits at the same time we remove the
> deprecated
> > > > >> members.
> > > > >> > > Aside from the complexity of that approach, it’s not a
> breakage
> > > free
> > > > >> path,
> > > > >> > > as some users would be forced to continue using the deprecated
> > > members
> > > > >> > > until a future release drops them, breaking their source
> code, and
> > > > >> only
> > > > >> > > then can they update their code.
> > > > >> > >
> > > > >> > > That wouldn’t be the end of the world, and we’ve had to do the
> > > same
> > > > >> thing
> > > > >> > > in the past with the implicit conversations, but this is a
> much
> > > wider
> > > > >> > > scope, since it’s all the serdes. I’m happy with the new plan,
> > > since
> > > > >> it’s
> > > > >> > > not only one step, but also it provides everyone a
> breakage-free
> > > path.
> > > > >> > >
> > > > >> > > We can still consider dropping the deprecated class in 3.0; I
> just
> > > > >> wanted
> > > > >> > > to clarify how the timeline issue has changed.
> > > > >> > >
> > > > >> > > Thanks,
> > > > >> > > John
> > > > >> > >
> > > > >> > > On Thu, May 28, 2020, at 20:34, Matthias J. Sax wrote:
> > > > >> > > > I am not a Scale person, so I cannot really contribute much.
> > > > >> However for
> > > > >> > > > the deprecation period, if we get the change into 2.7, it
> might
> > > be
> > > > >> ok to
> > > > >> > > > remove the deprecated classed in 3.0.
> > > > >> > > >
> > > > >> > > > It would only be one minor release in between what is a
> little
> > > bit
> > > > >> short
> > > > >> > > > (we usually prefer at least two minor released, better
> three),
> > > but
> > > > >> if we
> > > > >> > > > have a good reason for it, it might be ok.
> > > > >> > > >
> > > > >> > > > If we cannot remove it in 3.0, it seems there would be a
> 4.0 in
> > > > >> about a
> > > > >> > > > year(?) when ZK removal is finished and we can remove the
> > > deprecated
> > > > >> > > > code than.
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > -Matthias
> > > > >> > > >
> > > > >> > > > On 5/28/20 7:39 AM, John Roesler wrote:
> > > > >> > > > > Hi Yuriy,
> > > > >> > > > >
> > > > >> > > > > Sounds good to me! I had a feeling we were bringing
> different
> > > > >> context
> > > > >> > > > > to the discussion; thanks for sticking with the
> conversation
> > > > >> until we
> > > > >> > > got
> > > > >> > > > > it hashed out.
> > > > >> > > > >
> > > > >> > > > > I'm glad you prefer Serde*s*, since having multiple
> different
> > > > >> classes
> > > > >> > > with
> > > > >> > > > > the same name leads to all kinds of trouble. "Serdes"
> seems
> > > > >> relatively
> > > > >> > > > > safe because people in the Scala lib won't be using the
> Java
> > > > >> Serdes
> > > > >> > > class,
> > > > >> > > > > and they won't be using the deprecated and non-deprecated
> one
> > > at
> > > > >> the
> > > > >> > > > > same time.
> > > > >> > > > >
> > > > >> > > > > Thank again,
> > > > >> > > > > -John
> > > > >> > > > >
> > > > >> > > > > On Thu, May 28, 2020, at 02:21, Yuriy Badalyantc wrote:
> > > > >> > > > >> Ok, I understood you, John. I wasn't sure about kafka
> > > deprecation
> > > > >> > > policy
> > > > >> > > > >> and thought that the full cycle could be done with 2.7
> > > version.
> > > > >> > > Waiting for
> > > > >> > > > >> 3.0 is too much, I agree with it.
> > > > >> > > > >>
> > > > >> > > > >> So, I think creating one more `Serdes` in another
> package is
> > > our
> > > > >> way.
> > > > >> > > I
> > > > >> > > > >> suggest one of the following:
> > > > >> > > > >> 1. `org.apache.kafka.streams.scala.serde.Serdes`
> > > > >> > > > >> 2. `org.apache.kafka.streams.scala.serialization.Serdes`
> > > > >> > > > >>
> > > > >> > > > >> About `Serde` vs `Serdes`. I'm strongly against `Serde`
> > > because
> > > > >> it
> > > > >> > > would
> > > > >> > > > >> lead to a new name clash with the
> > > > >> > > > >> `org.apache.kafka.common.serialization.Serde`.
> > > > >> > > > >>
> > > > >> > > > >> - Yuriy
> > > > >> > > > >>
> > > > >> > > > >> On Thu, May 28, 2020 at 11:12 AM John Roesler <
> > > > >> vvcep...@apache.org>
> > > > >> > > wrote:
> > > > >> > > > >>
> > > > >> > > > >>> Hi Yuriy,
> > > > >> > > > >>>
> > > > >> > > > >>> Thanks for the clarification.
> > > > >> > > > >>>
> > > > >> > > > >>> I guess my concern is twofold:
> > > > >> > > > >>> 1. We typically leave deprecated methods in place for at
> > > least a
> > > > >> > > major
> > > > >> > > > >>> release cycle before removing them, so it would seem
> abrupt
> > > to
> > > > >> have a
> > > > >> > > > >>> deprecation period of only one minor release. If we
> follow
> > > the
> > > > >> same
> > > > >> > > pattern
> > > > >> > > > >>> here, it would take over a year to finish this KIP.
> > > > >> > > > >>> 2. It doesn’t seem like there is a nonbreaking
> deprecation
> > > path
> > > > >> at
> > > > >> > > all if
> > > > >> > > > >>> people enumerate their imports (if they don’t use a
> > > wildcard).
> > > > >> In
> > > > >> > > that
> > > > >> > > > >>> case, they would have no path to implicitly use the
> newly
> > > named
> > > > >> > > serdes, and
> > > > >> > > > >>> therefore they would have no way to avoid continuing to
> use
> > > the
> > > > >> > > deprecated
> > > > >> > > > >>> ones.
> > > > >> > > > >>>
> > > > >> > > > >>> Since you mentioned that your reason is mainly the
> > > preference
> > > > >> for
> > > > >> > > the name
> > > > >> > > > >>> “Serde” or “Serdes”, can we explore just using one of
> those?
> > > > >> Would
> > > > >> > > it cause
> > > > >> > > > >>> some kind of conflict to use
> > > > >> org.apache.kafka.streams.scala.Serde or
> > > > >> > > to use
> > > > >> > > > >>> Serdes in a different package, like
> > > > >> > > > >>> org.apache.kafka.streams.scala.implicit.Serdes?
> > > > >> > > > >>>
> > > > >> > > > >>> I empathize with this desire. I faced the same dilemma
> when
> > > I
> > > > >> wanted
> > > > >> > > to
> > > > >> > > > >>> replace Processor but keep the class name in KIP-478. I
> > > wound up
> > > > >> > > creating a
> > > > >> > > > >>> new package for the new Processor.
> > > > >> > > > >>>
> > > > >> > > > >>> Thanks,
> > > > >> > > > >>> John
> > > > >> > > > >>>
> > > > >> > > > >>> On Wed, May 27, 2020, at 22:20, Yuriy Badalyantc wrote:
> > > > >> > > > >>>> Hi John,
> > > > >> > > > >>>>
> > > > >> > > > >>>> I'm stick with the
> `org.apache.kafka.streams.scala.Serdes`
> > > > >> because
> > > > >> > > it's
> > > > >> > > > >>>> sort of conventional in the scala community. If you
> have a
> > > > >> typeclass
> > > > >> > > > >>> `Foo`,
> > > > >> > > > >>>> you probably will search `Foo` related stuff in the
> `Foo`
> > > or
> > > > >> maybe
> > > > >> > > `Foos`
> > > > >> > > > >>>> (plural). All other places are far less discoverable
> for
> > > the
> > > > >> > > developers.
> > > > >> > > > >>>>
> > > > >> > > > >>>> I agree that the migration path is a bit complex for
> such
> > > > >> change.
> > > > >> > > But I
> > > > >> > > > >>>> think it's more important to provide good developer
> > > experience
> > > > >> than
> > > > >> > > to
> > > > >> > > > >>>> simplify migration. Also, I think it's debatable which
> > > > >> migration
> > > > >> > > path is
> > > > >> > > > >>>> better for library users. If we would create, for
> example,
> > > > >> > > `Serdes2`,
> > > > >> > > > >>>> library users will have to modify their code if they
> used
> > > any
> > > > >> part
> > > > >> > > of the
> > > > >> > > > >>>> old `Serde`. With my approach, most of the old code
> will
> > > still
> > > > >> work
> > > > >> > > > >>> without
> > > > >> > > > >>>> changes. Only explicit usage of implicits will need to
> be
> > > fixed
> > > > >> > > (because
> > > > >> > > > >>>> names will be changed, and old names will be
> deprecated).
> > > > >> Wildcard
> > > > >> > > > >>> imports
> > > > >> > > > >>>> will work without changes and will not lead to a name
> > > clash.
> > > > >> > > Moreover,
> > > > >> > > > >>> many
> > > > >> > > > >>>> users may not notice name clash problems. And with my
> > > migration
> > > > >> > > path,
> > > > >> > > > >>> they
> > > > >> > > > >>>> will not notice any changes at all.
> > > > >> > > > >>>>
> > > > >> > > > >>>> - Yuriy
> > > > >> > > > >>>>
> > > > >> > > > >>>> On Thu, May 28, 2020 at 7:48 AM John Roesler <
> > > > >> vvcep...@apache.org>
> > > > >> > > > >>> wrote:
> > > > >> > > > >>>>
> > > > >> > > > >>>>> Hi Yuriy,
> > > > >> > > > >>>>>
> > > > >> > > > >>>>> Thanks for the reply. I guess I've been out of the
> Scala
> > > game
> > > > >> for a
> > > > >> > > > >>>>> while; all this summoner business is totally new to
> me.
> > > > >> > > > >>>>>
> > > > >> > > > >>>>> I think I followed the rationale you provided, but I
> still
> > > > >> don't
> > > > >> > > see
> > > > >> > > > >>>>> why you can't implement your whole plan in a new
> class.
> > > What
> > > > >> > > > >>>>> is special about the existing Serdes class?
> > > > >> > > > >>>>>
> > > > >> > > > >>>>> Thanks,
> > > > >> > > > >>>>> -John
> > > > >> > > > >>>>>
> > > > >> > > > >>>>> On Tue, May 19, 2020, at 01:18, Yuriy Badalyantc
> wrote:
> > > > >> > > > >>>>>> Hi John,
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> Your suggestion looks interesting. I think it's
> > > technically
> > > > >> > > doable.
> > > > >> > > > >>> But
> > > > >> > > > >>>>> I'm
> > > > >> > > > >>>>>> not sure that this is the better solution. I will
> try to
> > > > >> explain.
> > > > >> > > > >>> From
> > > > >> > > > >>>>> the
> > > > >> > > > >>>>>> scala developers' perspective, `Serde` looks really
> like
> > > a
> > > > >> > > typeclass.
> > > > >> > > > >>>>>> Typical typeclass in pure scala will look like this:
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>> trait Serde[A] {
> > > > >> > > > >>>>>>   def serialize(data: A): Array[Byte]
> > > > >> > > > >>>>>>   def deserialize(data: Array[Byte]): A
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>> object Serde extends DefaultSerdes {
> > > > >> > > > >>>>>>   // "summoner" function. With this I can write
> > > `Serde[A]`
> > > > >> and
> > > > >> > > this
> > > > >> > > > >>> serde
> > > > >> > > > >>>>>> will be implicitly summonned.
> > > > >> > > > >>>>>>   def apply[A](implicit ev: Serde[A]): Serde[A] = ev
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> trait DefaultSerdes {
> > > > >> > > > >>>>>>   // default instances here
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> Usage example (note, that there are no wildcards
> imports
> > > > >> here):
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>> object Main extends App {
> > > > >> > > > >>>>>>   import Serde // not wildcard import
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   // explicit summonning:
> > > > >> > > > >>>>>>   val stringSerde = Serde[String] // using summoner
> > > > >> > > > >>>>>>   stringSerde.serialize(???)
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   // implicit summonning
> > > > >> > > > >>>>>>   def serialize[A: Serde](a: A) = {
> > > > >> > > > >>>>>>     Serde[A].serialize(a) // summoner again
> > > > >> > > > >>>>>>   }
> > > > >> > > > >>>>>>   serialize("foo")
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> Examples are pretty silly, but I just want to show
> common
> > > > >> > > patterns of
> > > > >> > > > >>>>>> working with typeclasses in scala. All default
> instances
> > > in
> > > > >> the
> > > > >> > > usage
> > > > >> > > > >>>>>> examples are found using implicits searching
> mechanism.
> > > Scala
> > > > >> > > > >>> compiler
> > > > >> > > > >>>>>> searches implicits in a lot of places. Including
> > > companion
> > > > >> > > objects.
> > > > >> > > > >>> In my
> > > > >> > > > >>>>>> examples compiler will found `Serde[String]`
> instance in
> > > the
> > > > >> > > > >>> companion
> > > > >> > > > >>>>>> object of `Serde` typeclass.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> Also, I want to pay attention to the summoner
> function.
> > > It
> > > > >> makes
> > > > >> > > > >>> usage of
> > > > >> > > > >>>>>> typeclasses very neat and clear.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> The example above was the example of the perfect
> solution
> > > > >> for the
> > > > >> > > > >>> scala
> > > > >> > > > >>>>>> developers. But this solution requires to create
> separate
> > > > >> `Serde`
> > > > >> > > > >>>>>> typeclass, to make all this implicit searching stuff
> > > works. I
> > > > >> > > don't
> > > > >> > > > >>> think
> > > > >> > > > >>>>>> that it worth it, because a lot of code should be
> > > > >> reimplemented
> > > > >> > > using
> > > > >> > > > >>>>> this
> > > > >> > > > >>>>>> new typeclass. But the main point of my example is to
> > > show
> > > > >> the
> > > > >> > > > >>> perfect
> > > > >> > > > >>>>>> solution. And I think we should strive to provide
> > > developer
> > > > >> > > > >>> experience
> > > > >> > > > >>>>>> close to this.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> It's a bit out of the scope of my KIP, but I have a
> plan
> > > to
> > > > >> make
> > > > >> > > > >>>>>> `org.apache.kafka.streams.scala.Serdes` more closer
> to
> > > the
> > > > >> > > solution
> > > > >> > > > >>>>> above.
> > > > >> > > > >>>>>> It could be done in 2 steps:
> > > > >> > > > >>>>>> 1. Fix implicit names.
> > > > >> > > > >>>>>> 2. Add summoner function.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> And with this scala developers will be able to write
> > > almost
> > > > >> the
> > > > >> > > same
> > > > >> > > > >>> code
> > > > >> > > > >>>>>> as in the example above:
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>> object Main extends App {
> > > > >> > > > >>>>>>   import org.apache.kafka.streams.scala.Serdes // not
> > > > >> wildcard
> > > > >> > > import
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   val stringSerde = Serdes[String]
> > > > >> > > > >>>>>>   stringSerde.serialize(???)
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   def serialize[A: Serde](a: A) = {
> > > > >> > > > >>>>>>     Serdes[A].serialize(a)
> > > > >> > > > >>>>>>   }
> > > > >> > > > >>>>>>   serialize("foo")
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>> Of course, wildcard import will still work.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> Other names will make this new entity (containing
> default
> > > > >> > > implicits)
> > > > >> > > > >>> less
> > > > >> > > > >>>>>> discoverable. And summoner usage, in this case, will
> look
> > > > >> weird:
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>> object Main extends App {
> > > > >> > > > >>>>>>   import
> org.apache.kafka.streams.scala.DefaultSerdes //
> > > not
> > > > >> > > wildcard
> > > > >> > > > >>>>> import
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   val stringSerde = DefaultSerdes[String]
> > > > >> > > > >>>>>>   stringSerde.serialize(???)
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>   def serialize[A: Serde](a: A) = {
> > > > >> > > > >>>>>>     DefaultSerdes[A].serialize(a)
> > > > >> > > > >>>>>>   }
> > > > >> > > > >>>>>>   serialize("foo")
> > > > >> > > > >>>>>> }
> > > > >> > > > >>>>>> ```
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> So, I think it's more important to provide a solid
> and
> > > > >> familiar
> > > > >> > > > >>> developer
> > > > >> > > > >>>>>> experience for the scala developer. And renaming (or
> > > > >> creating a
> > > > >> > > new
> > > > >> > > > >>>>>> version) of `Serdes` will not help here.
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> -Yuriy
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>> On Tue, May 19, 2020 at 11:56 AM John Roesler <
> > > > >> > > vvcep...@apache.org>
> > > > >> > > > >>>>> wrote:
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>>> Hi Yuriy,
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> Thanks so much for the KIP! I didn’t anticipate the
> > > problem
> > > > >> you
> > > > >> > > > >>> laid
> > > > >> > > > >>>>> out
> > > > >> > > > >>>>>>> in the KIP, but I find it very plausible.
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> Thanks for pushing back on the “convention” and
> raising
> > > the
> > > > >> > > issue,
> > > > >> > > > >>> and
> > > > >> > > > >>>>>>> also volunteering a solution!
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> I’m wondering if we can “fix” it in one shot by just
> > > > >> deprecating
> > > > >> > > > >>> the
> > > > >> > > > >>>>> whole
> > > > >> > > > >>>>>>> Serdes class and replacing it with a new one
> containing
> > > the
> > > > >> defs
> > > > >> > > > >>> you
> > > > >> > > > >>>>>>> proposed. Then, people could just switch their
> import to
> > > > >> the new
> > > > >> > > > >>> one.
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> Of course the new class needs to have a different
> name,
> > > > >> which is
> > > > >> > > > >>>>> always a
> > > > >> > > > >>>>>>> challenge in situations like this, so I might just
> > > throw out
> > > > >> > > > >>>>> ImplicitSerdes
> > > > >> > > > >>>>>>> as an option.
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> Do you think this would work?
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> Thanks again,
> > > > >> > > > >>>>>>> John
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>> On Mon, May 18, 2020, at 23:35, Yuriy Badalyantc
> wrote:
> > > > >> > > > >>>>>>>> Hi,
> > > > >> > > > >>>>>>>>
> > > > >> > > > >>>>>>>> I would like to propose KIP-616 to fix naming
> clash in
> > > the
> > > > >> kafka
> > > > >> > > > >>>>>>>> streams scala API:
> > > > >> > > > >>>>>>>>
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>
> > > > >> > > > >>>
> > > > >> > >
> > > > >>
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-616%3A+Rename+implicit+Serdes+instances+in+kafka-streams-scala
> > > > >> > > > >>>>>>>>
> > > > >> > > > >>>>>>>> Looking forward to your feedback.
> > > > >> > > > >>>>>>>>
> > > > >> > > > >>>>>>>> -Yuriy
> > > > >> > > > >>>>>>>>
> > > > >> > > > >>>>>>>
> > > > >> > > > >>>>>>
> > > > >> > > > >>>>>
> > > > >> > > > >>>>
> > > > >> > > > >>>
> > > > >> > > > >>
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > Attachments:
> > > > >> > > > * signature.asc
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > >
> > >
> >
>

Reply via email to