Skip to main content

Module cogrouped

Module cogrouped 

Source
Expand description

KIP-150 cogroup. It aggregates several co-partitioned input streams into one KTable. Each stream has its own value type Vn, but they share the key K and the output type VOut, and each input contributes an Aggregator<K, Vn, VOut>.

The topology holds one aggregate processor per input. All of them write to a single shared store, and they fan into one passthrough merge node that the result KTable reads.

KGroupedStream::cogroup and CogroupedKStream::cogroup capture each input’s lineage and a type-erased make_agg thunk that closes over the concrete Vn and the aggregator. The terminal aggregate and windowed_by* supply the shared Initializer, and for sessions the Merger, as an internal CogroupSpec. lower_cogroup then records the per-input repartition and aggregate nodes and the merge node, and it registers the shared store exactly once in the merge thunk.

Structs§

CogroupedKStream
A handle that collects the cogrouped inputs. The terminal aggregate and windowed_by* consume it.