Pascal Büttiker created KAFKA-8917:
--------------------------------------

             Summary: When performing a Left/Right-Join, pick the headers of 
the same side
                 Key: KAFKA-8917
                 URL: https://issues.apache.org/jira/browse/KAFKA-8917
             Project: Kafka
          Issue Type: Improvement
          Components: streams
            Reporter: Pascal Büttiker


As described in KAFKA-7718, headers are promoted by the "triggering" record in 
stateful operations such as Joins. This was very confusing and we spent quite 
some time debugging this.

While we ideally have full control over this behaviour as like the KAFKA-7718 
proposes, I hope we can solve some of the randomness before this:
 * Inner-Join: Keep as is (use the headers of the triggering record)
 * Full-Join: Keep as is (use the headers of the triggering record)
 * Left-Join: *Always pick the headers of the left record.*
 * Right-Join: *Always pick the headers of the right record.*

This behaviour would solve the most pressing issues when dealing with headers 
in Kafka Streams.

*Motivation*:

We depend on headers, especially when dealing with tombstone records. There is 
no other way to store additional information. If we do not use tombstone 
records, all default Kafka Features around compacted topics and KTabels are no 
longer useable. We are able to use custom Transformers to generate the headers 
(basically patch in the missing header support in Kafka Streams), but as soon 
that we use Join/Aggregate we loose control over the headers.

 

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to