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§
- CogroupedK
Stream - A handle that collects the cogrouped inputs. The terminal
aggregateandwindowed_by*consume it.