Live counterpart to TimeSeries.partitionBy. Routes
events into per-partition LiveSeries sub-buffers, each with
its own retention, grace window, and stateful operator
pipeline. Use apply((sub) => sub.fill(...).rolling(...)) to
compose live operators per partition; collect() to fan
partitioned outputs into a unified LiveSeries.
Multi-entity series: every stateful live operator
(rolling, fill, diff, rate, cumulative, pctChange)
silently mixes data across entities on a multi-host stream
unless scoped per-partition first.
Post-commit error semantics. The partition view runs as a
'event' listener on this LiveSeries. By the time a
partitioning failure throws (a rogue value not in declared
groups, or a stricter partition ordering rejecting an event
the source accepted), the source has already committed the
event — this.length reflects it. The caller's push()
surfaces the listener's throw, but the source state has
already moved. Validate inputs upstream of push() if
source/partition atomicity matters.
Live counterpart to TimeSeries.partitionBy. Routes events into per-partition
LiveSeriessub-buffers, each with its own retention, grace window, and stateful operator pipeline. Useapply((sub) => sub.fill(...).rolling(...))to compose live operators per partition;collect()to fan partitioned outputs into a unifiedLiveSeries.Multi-entity series: every stateful live operator (
rolling,fill,diff,rate,cumulative,pctChange) silently mixes data across entities on a multi-host stream unless scoped per-partition first.Post-commit error semantics. The partition view runs as a
'event'listener on thisLiveSeries. By the time a partitioning failure throws (a rogue value not in declaredgroups, or a stricter partition ordering rejecting an event the source accepted), the source has already committed the event —this.lengthreflects it. The caller'spush()surfaces the listener's throw, but the source state has already moved. Validate inputs upstream ofpush()if source/partition atomicity matters.See LivePartitionedSeries.