Thanks for your feedback!

1. I was adding headers to KeyValue to support groupBy, but I think it is
not necessary. It should be enough with mapping headers to key/value and
then group using current KeyValue structure.

2. Yes. IMO key/value stores, like RocksDB, rely on KV as structure, hence
considering headers as part of stateful operations will not fit in this
approach and increase complexity (I cannot think in a use-case that need
this).

3. and 4. Changes on 1. will solve this issue.

Probably I rush a bit proposing this change, I was not aware of KIP-159 or
KAFKA-5632.
If KIP-159 is adopted and we reduce this KIP to add Headers to
RecordContext will be enough, but I'm not sure about the scope of KIP-159.
If it includes stateful operations will be difficult to implemented as
stated in 2.

Cheers,
Jorge.

El mar., 26 dic. 2017 a las 20:04, Matthias J. Sax (<matth...@confluent.io>)
escribió:

> Thanks for the KIP Jorge,
>
> As Bill pointed out already, we should be careful with adding new
> overloads as this contradicts the work done via KIP-182.
>
> This KIP also seems to be related to KIP-149 and KIP-159. Are you aware
> of them? Both have quite long DISCUSS threads, but it might be worth
> browsing through them.
>
> A few further questions:
>
>  - why do you want to add the headers to `KeyValue`? I am not sure if we
> should consider headers as optional metadata and add it to
> `RecordContext` similar to timestamp, offset, etc. only


>  - You only include stateless single-record transformations at the DSL
> level. Do you suggest that all other operator just drop headers on the
> floor?
>
>  - Why do you only want to put headers into in-memory and cache but not
> RocksDB store? What do you mean by "pass through"? IMHO, all stores
> should behave the same at DSL level.
>    -> if we store the headers in the state stores, what is the upgrade
> path?
>
>  - Why do we need to store record header in state in the first place, if
> we exclude stateful operator at DSL level?
>
>
> What is the motivation for the "border lines" you choose?
>
>
> -Matthias
>
>
> On 12/21/17 8:18 AM, Bill Bejeck wrote:
> > Jorge,
> >
> > Thanks for the KIP, I know this is a feature others in the community have
> > been interested in getting into Kafka Streams.
> >
> > I took a quick pass over it, and I have one initial question.
> >
> > We recently reduced overloads with KIP-182, and in this KIP we are
> > increasing them again.
> >
> > I can see from the KIP why they are necessary, but I'm wondering if there
> > is something else we can do to cut down on the overloads introduced.  I
> > don't have any sound suggestions ATM, so I'll have to think about it some
> > more, but I wanted to put the thought out there.
> >
> > Thanks,
> > Bill
> >
> > On Thu, Dec 21, 2017 at 9:06 AM, Jorge Esteban Quilcate Otoya <
> > quilcate.jo...@gmail.com> wrote:
> >
> >> Hi all,
> >>
> >> I have created a KIP to add Record Headers support to Kafka Streams API:
> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> >> 244%3A+Add+Record+Header+support+to+Kafka+Streams
> >>
> >>
> >> The main goal is to be able to use headers to filter, map and process
> >> records as streams. Stateful processing (joins, windows) are not
> >> considered.
> >>
> >> Proposed changes/Draft:
> >> https://github.com/apache/kafka/compare/trunk...jeqo:streams-headers
> >>
> >> Feedback and suggestions are more than welcome.
> >>
> >> Cheers,
> >>
> >> Jorge.
> >>
> >
>
>

Reply via email to