[DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-07-31 Thread Florin Akermann
https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams


Re: [DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-07 Thread Florin Akermann
Hi Both,

Thanks.
I added remarks to account for this.
https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Remarks

In short, let's add a note in the Java docs? The exact wording of the note
can be scrutinized in the pull request?

What do you think?


On Sun, 6 Aug 2023 at 19:41, Guozhang Wang 
wrote:

> I'm just thinking we can try to encourage users to migrate from XX to
> XXWithKey in the docs, giving this as one good example that the latter
> can help you distinguish different scenarios whereas the former
> cannot.
>
> On Fri, Aug 4, 2023 at 6:32 PM Matthias J. Sax  wrote:
> >
> > Guozhang,
> >
> > thanks for pointing out ValueJoinerWithKey. In the end, it's just a
> > documentation change, ie, point out that the passed in key could be
> > `null` and similar?
> >
> > -Matthias
> >
> >
> > On 8/2/23 3:20 PM, Guozhang Wang wrote:
> > > Thanks Florin for the writeup,
> > >
> > > One quick thing I'd like to bring up is that in KIP-149
> > > (
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+ValueJoiner
> )
> > > we introduced ValueJoinerWithKey which is aimed to enhance
> > > ValueJoiner. It would have a benefit for this KIP such that
> > > implementers can distinguish "null-key" v.s. "not-null-key but
> > > null-value" scenarios.
> > >
> > > Hence I'd suggest we also include the semantic changes with
> > > ValueJoinerWithKey, which can help distinguish these two scenarios,
> > > and also document that if users apply ValueJoiner only, they may not
> > > have this benefit, and hence we suggest users to use the former.
> > >
> > >
> > > Guozhang
> > >
> > > On Mon, Jul 31, 2023 at 12:11 PM Florin Akermann
> > >  wrote:
> > >>
> > >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams
>


Re: [DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-07 Thread Florin Akermann
Hi Lucas,

Thanks. I added the point about the upgrade guide as well.

Florin

On Mon, 7 Aug 2023 at 11:06, Lucas Brutschy 
wrote:

> Hi Florin,
>
> thanks for the KIP! This looks good to me. I agree that the precise
> Java doc wording doesn't have to be discussed as part of the KIP.
>
> I would also suggest to include an update to
> https://kafka.apache.org/documentation/streams/upgrade-guide
>
> Cheers,
> Lucas
>
> On Mon, Aug 7, 2023 at 10:51 AM Florin Akermann
>  wrote:
> >
> > Hi Both,
> >
> > Thanks.
> > I added remarks to account for this.
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Remarks
> >
> > In short, let's add a note in the Java docs? The exact wording of the
> note
> > can be scrutinized in the pull request?
> >
> > What do you think?
> >
> >
> > On Sun, 6 Aug 2023 at 19:41, Guozhang Wang 
> > wrote:
> >
> > > I'm just thinking we can try to encourage users to migrate from XX to
> > > XXWithKey in the docs, giving this as one good example that the latter
> > > can help you distinguish different scenarios whereas the former
> > > cannot.
> > >
> > > On Fri, Aug 4, 2023 at 6:32 PM Matthias J. Sax 
> wrote:
> > > >
> > > > Guozhang,
> > > >
> > > > thanks for pointing out ValueJoinerWithKey. In the end, it's just a
> > > > documentation change, ie, point out that the passed in key could be
> > > > `null` and similar?
> > > >
> > > > -Matthias
> > > >
> > > >
> > > > On 8/2/23 3:20 PM, Guozhang Wang wrote:
> > > > > Thanks Florin for the writeup,
> > > > >
> > > > > One quick thing I'd like to bring up is that in KIP-149
> > > > > (
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+ValueJoiner
> > > )
> > > > > we introduced ValueJoinerWithKey which is aimed to enhance
> > > > > ValueJoiner. It would have a benefit for this KIP such that
> > > > > implementers can distinguish "null-key" v.s. "not-null-key but
> > > > > null-value" scenarios.
> > > > >
> > > > > Hence I'd suggest we also include the semantic changes with
> > > > > ValueJoinerWithKey, which can help distinguish these two scenarios,
> > > > > and also document that if users apply ValueJoiner only, they may
> not
> > > > > have this benefit, and hence we suggest users to use the former.
> > > > >
> > > > >
> > > > > Guozhang
> > > > >
> > > > > On Mon, Jul 31, 2023 at 12:11 PM Florin Akermann
> > > > >  wrote:
> > > > >>
> > > > >>
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams
> > >
>


Re: [DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-09 Thread Florin Akermann
Hi All,

I added a remark about the repartition of null-key records.
https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Repartitionofnull-keyrecords

Can we relax this constraint for any kind of repartitioning or should it
only be relaxed in the context of left stream-table and left/outer
stream-stream joins?

Florin

On Mon, 7 Aug 2023 at 13:23, Florin Akermann 
wrote:

> Hi Lucas,
>
> Thanks. I added the point about the upgrade guide as well.
>
> Florin
>
> On Mon, 7 Aug 2023 at 11:06, Lucas Brutschy 
> wrote:
>
>> Hi Florin,
>>
>> thanks for the KIP! This looks good to me. I agree that the precise
>> Java doc wording doesn't have to be discussed as part of the KIP.
>>
>> I would also suggest to include an update to
>> https://kafka.apache.org/documentation/streams/upgrade-guide
>>
>> Cheers,
>> Lucas
>>
>> On Mon, Aug 7, 2023 at 10:51 AM Florin Akermann
>>  wrote:
>> >
>> > Hi Both,
>> >
>> > Thanks.
>> > I added remarks to account for this.
>> >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Remarks
>> >
>> > In short, let's add a note in the Java docs? The exact wording of the
>> note
>> > can be scrutinized in the pull request?
>> >
>> > What do you think?
>> >
>> >
>> > On Sun, 6 Aug 2023 at 19:41, Guozhang Wang 
>> > wrote:
>> >
>> > > I'm just thinking we can try to encourage users to migrate from XX to
>> > > XXWithKey in the docs, giving this as one good example that the latter
>> > > can help you distinguish different scenarios whereas the former
>> > > cannot.
>> > >
>> > > On Fri, Aug 4, 2023 at 6:32 PM Matthias J. Sax 
>> wrote:
>> > > >
>> > > > Guozhang,
>> > > >
>> > > > thanks for pointing out ValueJoinerWithKey. In the end, it's just a
>> > > > documentation change, ie, point out that the passed in key could be
>> > > > `null` and similar?
>> > > >
>> > > > -Matthias
>> > > >
>> > > >
>> > > > On 8/2/23 3:20 PM, Guozhang Wang wrote:
>> > > > > Thanks Florin for the writeup,
>> > > > >
>> > > > > One quick thing I'd like to bring up is that in KIP-149
>> > > > > (
>> > >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+ValueJoiner
>> > > )
>> > > > > we introduced ValueJoinerWithKey which is aimed to enhance
>> > > > > ValueJoiner. It would have a benefit for this KIP such that
>> > > > > implementers can distinguish "null-key" v.s. "not-null-key but
>> > > > > null-value" scenarios.
>> > > > >
>> > > > > Hence I'd suggest we also include the semantic changes with
>> > > > > ValueJoinerWithKey, which can help distinguish these two
>> scenarios,
>> > > > > and also document that if users apply ValueJoiner only, they may
>> not
>> > > > > have this benefit, and hence we suggest users to use the former.
>> > > > >
>> > > > >
>> > > > > Guozhang
>> > > > >
>> > > > > On Mon, Jul 31, 2023 at 12:11 PM Florin Akermann
>> > > > >  wrote:
>> > > > >>
>> > > > >>
>> > >
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams
>> > >
>>
>


Re: [DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-10 Thread Florin Akermann
Thank you for the feedback.

> Not sure if this is the right phrasing?

You are right. I adjusted the phrasing accordingly.
Given your description of the current behavior, do I understand correctly
that the current documentation for the left join KStream-GlobalKtable is
out of date?
https://github.com/apache/kafka/blob/9318b591d7a57b9db1e7519986d78f0402cd5b5e/streams/src/main/java/org/apache/kafka/streams/kstream/KStream.java#L2948C7-L2948C7

> I would remove this from the KIP

I agree,Removed.
Plus, relevant doc links added.

> I think the way it's phrased is good. [...] We can cover details on the
PR.

Great. Yes, in general, I hope everybody agrees that we shouldn't add more
details to this KIP


On Thu, 10 Aug 2023 at 00:16, Matthias J. Sax  wrote:

> Thanks for the KIP.
>
> > left join KStream-GlobalTable: no longer drop left records with null-key
> and call KeyValueMapper with 'null' for left  key. The case where
> KeyValueMapper returns null is already handled in the current
> implementation.
>
> Not sure if this is the right phrasing? In the end, even now, the stream
> input record key can be null (cf
> https://issues.apache.org/jira/browse/KAFKA-10277) -- a stream record is
> only dropped if the `KeyValueMapper` returns `null` (note that the
> key-extractor has no default implemenation but is a required argument)
> -- this KIP would relax this case for left-join.
>
>
> > In the pull request all relevant Javadocs will be updated with the
> information on how to keep the old behavior for a given operator / method.
>
> I would remove this from the KIP -- I am also not sure if we should put
> it into the JavaDoc? -- I agree that it should go into the upgrade docs
> as well as "join section" in the docs:
>
> https://kafka.apache.org/35/documentation/streams/developer-guide/dsl-api.html#joining
>
> We also have
>
> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Join+Semantics
> that we should update.
>
>
> > I added a remark about the repartition of null-key records.
>
> I think the way it's phrase is good. In the end, it's an optimization to
> drop records upstream (instead of piping them through the topic and drop
> the downstream), and thus we don't have to cover it in the KIP in
> detail. In general, for aggregations we can still apply the
> optimization, however, we need to be careful as we could also have two
> downstream operators with a shared repartition topic: for this case, we
> can only drop upstream if all downstream operator would drop null-key
> records anyway. We can cover details on the PR.
>
>
>
> -Matthias
>
>
>
> On 8/9/23 5:39 AM, Florin Akermann wrote:
> > Hi All,
> >
> > I added a remark about the repartition of null-key records.
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Repartitionofnull-keyrecords
> >
> > Can we relax this constraint for any kind of repartitioning or should it
> > only be relaxed in the context of left stream-table and left/outer
> > stream-stream joins?
> >
> > Florin
> >
> > On Mon, 7 Aug 2023 at 13:23, Florin Akermann 
> > wrote:
> >
> >> Hi Lucas,
> >>
> >> Thanks. I added the point about the upgrade guide as well.
> >>
> >> Florin
> >>
> >> On Mon, 7 Aug 2023 at 11:06, Lucas Brutschy  .invalid>
> >> wrote:
> >>
> >>> Hi Florin,
> >>>
> >>> thanks for the KIP! This looks good to me. I agree that the precise
> >>> Java doc wording doesn't have to be discussed as part of the KIP.
> >>>
> >>> I would also suggest to include an update to
> >>> https://kafka.apache.org/documentation/streams/upgrade-guide
> >>>
> >>> Cheers,
> >>> Lucas
> >>>
> >>> On Mon, Aug 7, 2023 at 10:51 AM Florin Akermann
> >>>  wrote:
> >>>>
> >>>> Hi Both,
> >>>>
> >>>> Thanks.
> >>>> I added remarks to account for this.
> >>>>
> >>>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Remarks
> >>>>
> >>>> In short, let's add a note in the Java docs? The exact wording of the
> >>> note
> >>>> can be scrutinized in the pull request?
> >>>>
> >>>> What do you think?
> >>>>
> >>>>
> >>&g

Re: [DISCUSS] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-10 Thread Florin Akermann
Thanks.

Here is the PR for this catch: https://github.com/apache/kafka/pull/14187

On Thu, 10 Aug 2023 at 19:04, Matthias J. Sax  wrote:

> Good catch about the JavaDocs.
>
> Seems we missed to update them when we did K10277. Would you like to do
> a PR to fix them right away for upcoming 3.6 release?
>
> If there is no more other comments, I think you can start a VOTE thread.
>
>
> -Matthias
>
> On 8/10/23 4:22 AM, Florin Akermann wrote:
> > Thank you for the feedback.
> >
> >> Not sure if this is the right phrasing?
> >
> > You are right. I adjusted the phrasing accordingly.
> > Given your description of the current behavior, do I understand correctly
> > that the current documentation for the left join KStream-GlobalKtable is
> > out of date?
> >
> https://github.com/apache/kafka/blob/9318b591d7a57b9db1e7519986d78f0402cd5b5e/streams/src/main/java/org/apache/kafka/streams/kstream/KStream.java#L2948C7-L2948C7
> >
> >> I would remove this from the KIP
> >
> > I agree,Removed.
> > Plus, relevant doc links added.
> >
> >> I think the way it's phrased is good. [...] We can cover details on the
> > PR.
> >
> > Great. Yes, in general, I hope everybody agrees that we shouldn't add
> more
> > details to this KIP
> >
> >
> > On Thu, 10 Aug 2023 at 00:16, Matthias J. Sax  wrote:
> >
> >> Thanks for the KIP.
> >>
> >>> left join KStream-GlobalTable: no longer drop left records with
> null-key
> >> and call KeyValueMapper with 'null' for left  key. The case where
> >> KeyValueMapper returns null is already handled in the current
> >> implementation.
> >>
> >> Not sure if this is the right phrasing? In the end, even now, the stream
> >> input record key can be null (cf
> >> https://issues.apache.org/jira/browse/KAFKA-10277) -- a stream record
> is
> >> only dropped if the `KeyValueMapper` returns `null` (note that the
> >> key-extractor has no default implemenation but is a required argument)
> >> -- this KIP would relax this case for left-join.
> >>
> >>
> >>> In the pull request all relevant Javadocs will be updated with the
> >> information on how to keep the old behavior for a given operator /
> method.
> >>
> >> I would remove this from the KIP -- I am also not sure if we should put
> >> it into the JavaDoc? -- I agree that it should go into the upgrade docs
> >> as well as "join section" in the docs:
> >>
> >>
> https://kafka.apache.org/35/documentation/streams/developer-guide/dsl-api.html#joining
> >>
> >> We also have
> >>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Join+Semantics
> >> that we should update.
> >>
> >>
> >>> I added a remark about the repartition of null-key records.
> >>
> >> I think the way it's phrase is good. In the end, it's an optimization to
> >> drop records upstream (instead of piping them through the topic and drop
> >> the downstream), and thus we don't have to cover it in the KIP in
> >> detail. In general, for aggregations we can still apply the
> >> optimization, however, we need to be careful as we could also have two
> >> downstream operators with a shared repartition topic: for this case, we
> >> can only drop upstream if all downstream operator would drop null-key
> >> records anyway. We can cover details on the PR.
> >>
> >>
> >>
> >> -Matthias
> >>
> >>
> >>
> >> On 8/9/23 5:39 AM, Florin Akermann wrote:
> >>> Hi All,
> >>>
> >>> I added a remark about the repartition of null-key records.
> >>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Repartitionofnull-keyrecords
> >>>
> >>> Can we relax this constraint for any kind of repartitioning or should
> it
> >>> only be relaxed in the context of left stream-table and left/outer
> >>> stream-stream joins?
> >>>
> >>> Florin
> >>>
> >>> On Mon, 7 Aug 2023 at 13:23, Florin Akermann <
> florin.akerm...@gmail.com>
> >>> wrote:
> >>>
> >>>> Hi Lucas,
> >>>>
> >>>> Thanks. I added the point about the upgrade guide as well.
> >>>>
> >>>> Flo

[VOTE] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-10 Thread Florin Akermann
https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams


Re: [VOTE] KIP-962 Relax non-null key requirement in Kafka Streams

2023-08-14 Thread Florin Akermann
Thanks all.

The 72h window is through.

The vote on KIP-962 passes with:
2 binding +1
1 non-binding +1
no vetoes

Florin

On Fri, 11 Aug 2023 at 15:43, Bill Bejeck  wrote:

> +1(binding)
>
> On Fri, Aug 11, 2023 at 7:33 AM Lucas Brutschy
>  wrote:
>
> > +1 (non-binding)
> >
> > On Fri, Aug 11, 2023 at 1:08 AM Matthias J. Sax 
> wrote:
> > >
> > > +1 (binding)
> > >
> > > On 8/10/23 12:31 PM, Florin Akermann wrote:
> > > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams
> > > >
> >
>


KIP-962: Review of second Jira/PR before 3.7 release

2023-11-17 Thread Florin Akermann
Hi,

As part of KIP-962 https://github.com/apache/kafka/pull/14174 got merged.

I think it would be good to tackle the related jira in the same release
(3.7)
https://issues.apache.org/jira/browse/KAFKA-14748
https://github.com/apache/kafka/pull/14107

Thanks,
Florin


Re: [DISCUSS] KIP-837 Allow MultiCasting a Result Record.

2022-06-25 Thread Florin Akermann
Hi Sagar,

Thanks for the KIP.

I am wondering about the following. What about other classes than the
org.apache.kafka.streams.processor.internals.RecordCollectorImpl. Would
they still call .partition(...) and just crash? Or is it a given that they
never receive a reference to a Partitioner of
type MultiCastStreamPartitioner?

Florin


On Sat, 28 May 2022 at 05:44, Sagar  wrote:

> Hi All,
>
> I’m thinking to move this KIP to vote section if there aren’t any
> objections.
>
> Plz let me know if I that’s ok.
>
> Thanks!
> Sagar.
>
> On Tue, 24 May 2022 at 10:32 PM, Sagar  wrote:
>
> > Hi All,
> >
> > Bumping this discussion thread again to see if there are any
> > comments/concerns on this.
> >
> > Thanks!
> > Sagar.
> >
> > On Wed, May 18, 2022 at 11:44 PM Sagar 
> wrote:
> >
> >> Hi All,
> >>
> >> I would like to open a discussion thread on
> >>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=211883356
> >> .
> >>
> >> Thanks!
> >> Sagar.
> >>
> >
>


Contributer List

2021-11-01 Thread Florin Akermann
Hi,

I would like to become a contributor.

My Jira account username is 'aki'

Thank you in advance.

Florin


[DISCUSS] KIP-798 Add possibility to write kafka headers in Kafka Console Producer

2021-11-12 Thread Florin Akermann
https://cwiki.apache.org/confluence/display/KAFKA/KIP-798%3A+Add+possibility+to+write+kafka+headers+in+Kafka+Console+Producer


Re: [VOTE] KIP-798 Add possibility to write kafka headers in Kafka Console Producer

2021-11-21 Thread Florin Akermann
Hi John,

Thanks for the vote and feedback.

The thought occurred to me too.

Do I understand it correctly: the current version of the
kafka-console-producer cannot be used for anything other than UTF-8 keys
and values?
(There is no other implementation of MessageReader other than the
ConsoleProducer$LineMessageReader)
In other words, currently users seem to only apply it with utf-8 strings
for keys and values?
This is why I figured I would not deviate from this assumption solely for
the headers.

I will happily raise another KIP / Jira if there is a need to specify other
formats / serializers for headers, keys and/or values.

Thanks,
Florin


On Sat, 20 Nov 2021 at 19:34, John Roesler  wrote:

> Hi Florin,
>
> Thanks for the KIP!
>
> I think the assumption that header values are UTF-8 strings might not hold
> up in the long run, but it seems like we can easily add a property later to
> specify the format. It seems like this scope is probably a handy addition
> on its own.
>
> I’m +1 (binding)
>
> Thanks,
> John
>
>
> On Fri, Nov 19, 2021, at 15:06, flo wrote:
> > <
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-798%3A+Add+possibility+to+write+kafka+headers+in+Kafka+Console+Producer
> >
>


Re: [VOTE] KIP-798 Add possibility to write kafka headers in Kafka Console Producer

2021-11-22 Thread Florin Akermann
Hi Luke and Tom

@Tom: Thanks for the vote.

@Luke: Thanks for the feedback.

I have updated the KIP accordingly with regards to your comments on the
remaining case (false,false) and the motivation.

Regarding the "not only UTF-8": As far as I understand John it is fine to
limit the scope for this change to UTF-8 only as it is a handy addition on
its own. Other formats can be relatively easily supported by adding more
properties in later KIPs. In my reply to John (email from 21 Nov 2021,
11:29 UTC) I also added an explanation why I limited the scope to UTF-8
only.

Thanks,
Florin



On Mon, 22 Nov 2021 at 10:32, Tom Bentley  wrote:

> Hi Florin,
>
> Thanks for the KIP!
>
> +1 (binding),
>
> Kind regards,
>
> Tom
>
> On Mon, Nov 22, 2021 at 6:51 AM Luke Chen  wrote:
>
> > Hi Florin,
> > Thanks for the KIP.
> >
> > This KIP makes sense to me. Just a comment that the motivation section is
> > not clearly explain why this KIP is important.
> > I think John already mentioned a good motivation, which is to support
> "not
> > only UTF-8".
> > You should put that into the KIP, and of course if you have other
> thoughts,
> > please also add them into KIP.
> >
> > Also, in the "public interface" section, there are 3 "Default parsing
> > pattern", I think you should add 1 remaining case (false, false) to make
> it
> > complete.
> >
> > Otherwise, look good to me.
> >
> > Thank you.
> > Luke
> >
> >
> > On Sun, Nov 21, 2021 at 7:37 PM Florin Akermann <
> florin.akerm...@gmail.com
> > >
> > wrote:
> >
> > > Hi John,
> > >
> > > Thanks for the vote and feedback.
> > >
> > > The thought occurred to me too.
> > >
> > > Do I understand it correctly: the current version of the
> > > kafka-console-producer cannot be used for anything other than UTF-8
> keys
> > > and values?
> > > (There is no other implementation of MessageReader other than the
> > > ConsoleProducer$LineMessageReader)
> > > In other words, currently users seem to only apply it with utf-8
> strings
> > > for keys and values?
> > > This is why I figured I would not deviate from this assumption solely
> for
> > > the headers.
> > >
> > > I will happily raise another KIP / Jira if there is a need to specify
> > other
> > > formats / serializers for headers, keys and/or values.
> > >
> > > Thanks,
> > > Florin
> > >
> > >
> > > On Sat, 20 Nov 2021 at 19:34, John Roesler 
> wrote:
> > >
> > > > Hi Florin,
> > > >
> > > > Thanks for the KIP!
> > > >
> > > > I think the assumption that header values are UTF-8 strings might not
> > > hold
> > > > up in the long run, but it seems like we can easily add a property
> > later
> > > to
> > > > specify the format. It seems like this scope is probably a handy
> > addition
> > > > on its own.
> > > >
> > > > I’m +1 (binding)
> > > >
> > > > Thanks,
> > > > John
> > > >
> > > >
> > > > On Fri, Nov 19, 2021, at 15:06, flo wrote:
> > > > > <
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-798%3A+Add+possibility+to+write+kafka+headers+in+Kafka+Console+Producer
> > > > >
> > > >
> > >
> >
>


Re: [VOTE] KIP-798 Add possibility to write kafka headers in Kafka Console Producer

2021-11-22 Thread Florin Akermann
Hi Bill and David,

Thank you both for the vote.
@David: KIP is updated.

Florin

On Mon, 22 Nov 2021 at 18:28, David Jacot 
wrote:

> Hi Florin,
>
> Thanks for the KIP. I am +1 (binding).
>
> There is a small typo in the Proposed Changes section:
> `parse.header` should be `parse.headers`.
>
> Best,
> David
>
> On Mon, Nov 22, 2021 at 6:20 PM Bill Bejeck  wrote:
> >
> > Hi Florin,
> >
> > Thanks for the KIP, this seems like a very useful addition.
> >
> > +1(binding).
> >
> > -Bill
> >
> > On Mon, Nov 22, 2021 at 12:00 PM Florin Akermann <
> florin.akerm...@gmail.com>
> > wrote:
> >
> > > Hi Luke and Tom
> > >
> > > @Tom: Thanks for the vote.
> > >
> > > @Luke: Thanks for the feedback.
> > >
> > > I have updated the KIP accordingly with regards to your comments on the
> > > remaining case (false,false) and the motivation.
> > >
> > > Regarding the "not only UTF-8": As far as I understand John it is fine
> to
> > > limit the scope for this change to UTF-8 only as it is a handy
> addition on
> > > its own. Other formats can be relatively easily supported by adding
> more
> > > properties in later KIPs. In my reply to John (email from 21 Nov 2021,
> > > 11:29 UTC) I also added an explanation why I limited the scope to UTF-8
> > > only.
> > >
> > > Thanks,
> > > Florin
> > >
> > >
> > >
> > > On Mon, 22 Nov 2021 at 10:32, Tom Bentley  wrote:
> > >
> > > > Hi Florin,
> > > >
> > > > Thanks for the KIP!
> > > >
> > > > +1 (binding),
> > > >
> > > > Kind regards,
> > > >
> > > > Tom
> > > >
> > > > On Mon, Nov 22, 2021 at 6:51 AM Luke Chen  wrote:
> > > >
> > > > > Hi Florin,
> > > > > Thanks for the KIP.
> > > > >
> > > > > This KIP makes sense to me. Just a comment that the motivation
> section
> > > is
> > > > > not clearly explain why this KIP is important.
> > > > > I think John already mentioned a good motivation, which is to
> support
> > > > "not
> > > > > only UTF-8".
> > > > > You should put that into the KIP, and of course if you have other
> > > > thoughts,
> > > > > please also add them into KIP.
> > > > >
> > > > > Also, in the "public interface" section, there are 3 "Default
> parsing
> > > > > pattern", I think you should add 1 remaining case (false, false) to
> > > make
> > > > it
> > > > > complete.
> > > > >
> > > > > Otherwise, look good to me.
> > > > >
> > > > > Thank you.
> > > > > Luke
> > > > >
> > > > >
> > > > > On Sun, Nov 21, 2021 at 7:37 PM Florin Akermann <
> > > > florin.akerm...@gmail.com
> > > > > >
> > > > > wrote:
> > > > >
> > > > > > Hi John,
> > > > > >
> > > > > > Thanks for the vote and feedback.
> > > > > >
> > > > > > The thought occurred to me too.
> > > > > >
> > > > > > Do I understand it correctly: the current version of the
> > > > > > kafka-console-producer cannot be used for anything other than
> UTF-8
> > > > keys
> > > > > > and values?
> > > > > > (There is no other implementation of MessageReader other than the
> > > > > > ConsoleProducer$LineMessageReader)
> > > > > > In other words, currently users seem to only apply it with utf-8
> > > > strings
> > > > > > for keys and values?
> > > > > > This is why I figured I would not deviate from this assumption
> solely
> > > > for
> > > > > > the headers.
> > > > > >
> > > > > > I will happily raise another KIP / Jira if there is a need to
> specify
> > > > > other
> > > > > > formats / serializers for headers, keys and/or values.
> > > > > >
> > > > > > Thanks,
> > > > > > Florin
> > > > > >
> > > > > >
> > > > > > On Sat, 20 Nov 2021 at 19:34, John Roesler 
> > > > wrote:
> > > > > >
> > > > > > > Hi Florin,
> > > > > > >
> > > > > > > Thanks for the KIP!
> > > > > > >
> > > > > > > I think the assumption that header values are UTF-8 strings
> might
> > > not
> > > > > > hold
> > > > > > > up in the long run, but it seems like we can easily add a
> property
> > > > > later
> > > > > > to
> > > > > > > specify the format. It seems like this scope is probably a
> handy
> > > > > addition
> > > > > > > on its own.
> > > > > > >
> > > > > > > I’m +1 (binding)
> > > > > > >
> > > > > > > Thanks,
> > > > > > > John
> > > > > > >
> > > > > > >
> > > > > > > On Fri, Nov 19, 2021, at 15:06, flo wrote:
> > > > > > > > <
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-798%3A+Add+possibility+to+write+kafka+headers+in+Kafka+Console+Producer
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
>


Re: [VOTE] KIP-798 Add possibility to write kafka headers in Kafka Console Producer

2021-11-23 Thread Florin Akermann
Thanks all.

The 72h window is through.

@Comitters can this vote be concluded?

The vote on KIP-798 would pass with:
4 binding +1
1 non-binding +1
no vetoes

Thanks,
Florin


On Tue, 23 Nov 2021 at 06:59, Luke Chen  wrote:

> Hi Florin,
> Thanks for the update!
>
> +1 (non-binding)
>
> Thank you.
> Luke
>
> On Tue, Nov 23, 2021 at 2:00 AM Florin Akermann  >
> wrote:
>
> > Hi Bill and David,
> >
> > Thank you both for the vote.
> > @David: KIP is updated.
> >
> > Florin
> >
> > On Mon, 22 Nov 2021 at 18:28, David Jacot 
> > wrote:
> >
> > > Hi Florin,
> > >
> > > Thanks for the KIP. I am +1 (binding).
> > >
> > > There is a small typo in the Proposed Changes section:
> > > `parse.header` should be `parse.headers`.
> > >
> > > Best,
> > > David
> > >
> > > On Mon, Nov 22, 2021 at 6:20 PM Bill Bejeck  wrote:
> > > >
> > > > Hi Florin,
> > > >
> > > > Thanks for the KIP, this seems like a very useful addition.
> > > >
> > > > +1(binding).
> > > >
> > > > -Bill
> > > >
> > > > On Mon, Nov 22, 2021 at 12:00 PM Florin Akermann <
> > > florin.akerm...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Luke and Tom
> > > > >
> > > > > @Tom: Thanks for the vote.
> > > > >
> > > > > @Luke: Thanks for the feedback.
> > > > >
> > > > > I have updated the KIP accordingly with regards to your comments on
> > the
> > > > > remaining case (false,false) and the motivation.
> > > > >
> > > > > Regarding the "not only UTF-8": As far as I understand John it is
> > fine
> > > to
> > > > > limit the scope for this change to UTF-8 only as it is a handy
> > > addition on
> > > > > its own. Other formats can be relatively easily supported by adding
> > > more
> > > > > properties in later KIPs. In my reply to John (email from 21 Nov
> > 2021,
> > > > > 11:29 UTC) I also added an explanation why I limited the scope to
> > UTF-8
> > > > > only.
> > > > >
> > > > > Thanks,
> > > > > Florin
> > > > >
> > > > >
> > > > >
> > > > > On Mon, 22 Nov 2021 at 10:32, Tom Bentley 
> > wrote:
> > > > >
> > > > > > Hi Florin,
> > > > > >
> > > > > > Thanks for the KIP!
> > > > > >
> > > > > > +1 (binding),
> > > > > >
> > > > > > Kind regards,
> > > > > >
> > > > > > Tom
> > > > > >
> > > > > > On Mon, Nov 22, 2021 at 6:51 AM Luke Chen 
> > wrote:
> > > > > >
> > > > > > > Hi Florin,
> > > > > > > Thanks for the KIP.
> > > > > > >
> > > > > > > This KIP makes sense to me. Just a comment that the motivation
> > > section
> > > > > is
> > > > > > > not clearly explain why this KIP is important.
> > > > > > > I think John already mentioned a good motivation, which is to
> > > support
> > > > > > "not
> > > > > > > only UTF-8".
> > > > > > > You should put that into the KIP, and of course if you have
> other
> > > > > > thoughts,
> > > > > > > please also add them into KIP.
> > > > > > >
> > > > > > > Also, in the "public interface" section, there are 3 "Default
> > > parsing
> > > > > > > pattern", I think you should add 1 remaining case (false,
> false)
> > to
> > > > > make
> > > > > > it
> > > > > > > complete.
> > > > > > >
> > > > > > > Otherwise, look good to me.
> > > > > > >
> > > > > > > Thank you.
> > > > > > > Luke
> > > > > > >
> > > > > > >
> > > > > > > On Sun, Nov 21, 2021 at 7:37 PM Florin Akermann <
> > > > > > florin.akerm...@gmail.com
> > > > > > > >
> > > > > > > wrote:
> > > > >

[jira] [Resolved] (KAFKA-14748) Relax non-null FK left-join requirement

2023-12-09 Thread Florin Akermann (Jira)


 [ 
https://issues.apache.org/jira/browse/KAFKA-14748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Florin Akermann resolved KAFKA-14748.
-
Resolution: Fixed

> Relax non-null FK left-join requirement
> ---
>
> Key: KAFKA-14748
> URL: https://issues.apache.org/jira/browse/KAFKA-14748
> Project: Kafka
>  Issue Type: Improvement
>  Components: streams
>Reporter: Matthias J. Sax
>    Assignee: Florin Akermann
>Priority: Major
>  Labels: kip
>
> Kafka Streams enforces a strict non-null-key policy in the DSL across all 
> key-dependent operations (like aggregations and joins).
> This also applies to FK-joins, in particular to the ForeignKeyExtractor. If 
> it returns `null`, it's treated as invalid. For left-joins, it might make 
> sense to still accept a `null`, and add the left-hand record with an empty 
> right-hand-side to the result.
> KIP-962: 
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (KAFKA-12317) Relax non-null key requirement for left/outer KStream joins

2023-12-09 Thread Florin Akermann (Jira)


 [ 
https://issues.apache.org/jira/browse/KAFKA-12317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Florin Akermann resolved KAFKA-12317.
-
Resolution: Fixed

> Relax non-null key requirement for left/outer KStream joins
> ---
>
> Key: KAFKA-12317
> URL: https://issues.apache.org/jira/browse/KAFKA-12317
> Project: Kafka
>  Issue Type: Improvement
>  Components: streams
>Reporter: Matthias J. Sax
>    Assignee: Florin Akermann
>Priority: Major
>  Labels: kip
>
> Currently, for a stream-streams and stream-table/globalTable join 
> KafkaStreams drops all stream records with a `null`{-}key (`null`-join-key 
> for stream-globalTable), because for a `null`{-}(join)key the join is 
> undefined: ie, we don't have an attribute the do the table lookup (we 
> consider the stream-record as malformed). Note, that we define the semantics 
> of _left/outer_ join as: keep the stream record if no matching join record 
> was found.
> We could relax the definition of _left_ stream-table/globalTable and 
> _left/outer_ stream-stream join though, and not drop `null`-(join)key stream 
> records, and call the ValueJoiner with a `null` "other-side" value instead: 
> if the stream record key (or join-key) is `null`, we could treat is as 
> "failed lookup" instead of treating the stream record as corrupted.
> If we make this change, users that want to keep the current behavior, can add 
> a `filter()` before the join to drop `null`-(join)key records from the stream 
> explicitly.
> Note that this change also requires to change the behavior if we insert a 
> repartition topic before the join: currently, we drop `null`-key record 
> before writing into the repartition topic (as we know they would be dropped 
> later anyway). We need to relax this behavior for a left stream-table and 
> left/outer stream-stream join. User need to be aware (ie, we might need to 
> put this into the docs and JavaDocs), that records with `null`-key would be 
> partitioned randomly.
> KIP-962: 
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (KAFKA-16123) KStreamKStreamJoinProcessor forwards null records for left/outer joins unconditionally of the join window.

2024-01-13 Thread Florin Akermann (Jira)
Florin Akermann created KAFKA-16123:
---

 Summary: KStreamKStreamJoinProcessor forwards null records for 
left/outer joins unconditionally of the join window.
 Key: KAFKA-16123
 URL: https://issues.apache.org/jira/browse/KAFKA-16123
 Project: Kafka
  Issue Type: Bug
Reporter: Florin Akermann
Assignee: Florin Akermann


As part of KIP-962 the non-null key requirements have been relaxed for left and 
outer joins.
However, the implementation forwards null records for left/outer joins 
unconditionally of
the join window.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (KAFKA-14049) Relax Non Null Requirement for KStreamGlobalKTable Left Join

2024-02-17 Thread Florin Akermann (Jira)


 [ 
https://issues.apache.org/jira/browse/KAFKA-14049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Florin Akermann resolved KAFKA-14049.
-
Resolution: Fixed

> Relax Non Null Requirement for KStreamGlobalKTable Left Join
> 
>
> Key: KAFKA-14049
> URL: https://issues.apache.org/jira/browse/KAFKA-14049
> Project: Kafka
>  Issue Type: Improvement
>  Components: streams
>Reporter: Saumya Gupta
>    Assignee: Florin Akermann
>Priority: Major
>
> Null Values in the Stream for a Left Join would indicate a Tombstone Message 
> that needs to propagated if not actually joined with the GlobalKTable 
> message, hence these messages should not be ignored .



--
This message was sent by Atlassian Jira
(v8.20.10#820010)