Nicholas Telford created KAFKA-13633:
----------------------------------------
Summary: Merging multiple KStreams in one operation
Key: KAFKA-13633
URL: https://issues.apache.org/jira/browse/KAFKA-13633
Project: Kafka
Issue Type: Improvement
Components: streams
Affects Versions: 3.1.0
Reporter: Nicholas Telford
Assignee: Nicholas Telford
The {{KStream}} API provides {{merge(KStream)}} to merge another {{KStream}}
with {{{}this{}}}. Sometimes, it may be useful to merge more than 2
{{{}KStream{}}}s together. Currently, the best way to do this is using Java's
{{{}Stream.reduce{}}}:
{noformat}
List<KStream<K, V>> streams ...;
streams.stream().reduce((left, right) -> left.merge(right));{noformat}
This creates a {{merge}} node in the process graph for every {{KStream}} in the
collection being merged.
Complex process graphs can make understanding an application and debugging more
difficult, therefore, we propose a new API that creates a single {{merge}} node
in the process graph, irrespective of the number of {{{}KStream{}}}s being
merged:
{noformat}
KStream<K, V> merge(KStream<K, V>... streams);
KStream<K, V> merge(Collection<K, V> streams, Named named);{noformat}
Note: since the varargs variant would conflict with the singleton API that
presently exists, the varargs variant would _replace_ the existing singleton
API:
{noformat}
KStream<K, V> merge(KStream<K, V> stream);{noformat}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)