Hi John,

Thanks for the review! Replied inline.

On Fri, Apr 24, 2020 at 8:09 PM John Roesler <vvcep...@apache.org> wrote:

> Hi Guozhang,
>
> Thanks for the KIP! I took a quick look, and I'm really happy to see this
> underway.
>
> Some quick questions:
>
> 1.  Can you elaborate on the reason that stores just have a list of
> serdes, whereas
> other components have an explicit key/value serde?
>

This is because of the existing API "List<Serde> StoreBuilder#serdes()".
Although both of its implementations would return two serdes (one for key
and one for value), the API is more general to return a list. And hence the
TopologyDescription#Store which gets them directly from StoreBuilder is
exposing the same API.

1.5. A side-effect of this seems to be that the string-formatted serde
> description is
> different, depending on whether the serdes are listed on a store or a
> topic. Just an
> observation.
>

Yes I agree. I think we can probably change the "List<Serde>
StoreBuilder#serdes()" signature as well (which would be a breaking change
though, so we should do that via deprecation), but I'm a bit concerned
since it was designed for future store types which may not be of K-V format
any more.


> 2. You mentioned the key compatibility concern in my mind. We do know that
> such
> use cases exist. Namely, our own tests and
> https://zz85.github.io/kafka-streams-viz/
> I'm wondering if we can add a forward-compatible machine-readable format
> to the
> KIP, so that even though we must break the parsers right now, maybe we'll
> never
> have to break them again. For example, I'm thinking of a "toJson" method
> on the
> TopologyDescription that formats the entire topology description as a json
> string.
>
>
Yes, I also have concerns about that (as described in the compatibility
section). One proposal I have is that we ONLY augment the toString result
if the TopologyDescription is from a Topology built from
`StreamsBuilder#build(Properties)`, which is only recently added and hence
most old usage would not get the benefits of it. But after thinking about
this a bit more, I'm now more inclined to just always augment the string,
and also add a `toJson` method in addition to `toString`.


> Thanks again!
> -John
>
> On Fri, Apr 24, 2020, at 00:26, Guozhang Wang wrote:
> > Hello folks,
> >
> > I'd like to start the discussion for KIP-598:
> >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=148648762
> >
> > It proposes to augment the topology description's sub-classes with store
> > and source / sink serde information. Let me know what you think, thanks!
> >
> > --
> > -- Guozhang
> >
>


-- 
-- Guozhang

Reply via email to