Sequence-triggered emission. The accumulator emits one snapshot each
time a source event crosses an epoch-aligned boundary of sequence.
Output timestamps are the boundary instants (Sequence.every('30s')
→ 0, 30 000, 60 000 … ms).
Data-driven, not wall-clock-driven. If no source events arrive
during an interval, no event is emitted for that interval.
One emission per crossing. A single event jumping multiple
boundaries fires exactly one event at the new bucket's start.
Synchronised across partitions. When applied via a partitioned
accumulator's trigger option, all partitions share the same
bucket index — any partition's event crossing a boundary fires
emission for every partition at the same instant.
Calendar sequences (Sequence.calendar('day')) are rejected — boundary
indexing requires a constant millisecond step.
Sequence-triggered emission. The accumulator emits one snapshot each time a source event crosses an epoch-aligned boundary of
sequence.Sequence.every('30s')→ 0, 30 000, 60 000 … ms).triggeroption, all partitions share the same bucket index — any partition's event crossing a boundary fires emission for every partition at the same instant.Calendar sequences (
Sequence.calendar('day')) are rejected — boundary indexing requires a constant millisecond step.