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)