Guozhang Wang created KAFKA-6049:
------------------------------------

             Summary: Kafka Streams: Add Cogroup in the DSL
                 Key: KAFKA-6049
                 URL: https://issues.apache.org/jira/browse/KAFKA-6049
             Project: Kafka
          Issue Type: New Feature
          Components: streams
            Reporter: Guozhang Wang
            Assignee: Kyle Winkelman


When multiple streams aggregate together to form a single larger object (eg. A 
shopping website may have a cart stream, a wish list stream, and a purchases 
stream. Together they make up a Customer.), it is very difficult to accommodate 
this in the Kafka-Streams DSL. It generally requires you to group and aggregate 
all of the streams to KTables then make multiple outerjoin calls to end up with 
a KTable with your desired object. This will create a state store for each 
stream and a long chain of ValueJoiners that each new record must go through to 
get to the final object.
Creating a cogroup method where you use a single state store will:
 Reduce the number of gets from state stores. With the multiple joins when a 
new value comes into any of the streams a chain reaction happens where 
ValueGetters keep calling ValueGetters until we have accessed all state stores.
Slight performance increase. As described above all ValueGetters are called 
also causing all ValueJoiners to be called forcing a recalculation of the 
current joined value of all other streams, impacting performance.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to