You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Nicholas Telford (Jira)" <ji...@apache.org> on 2022/01/31 15:19:00 UTC
[jira] [Created] (KAFKA-13633) Merging multiple KStreams in one operation
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)