pond-ts API Reference (core)
    Preparing search index...

    Class LivePartitionedFusedRolling<S, K, Out>

    Synchronised partitioned fused multi-window rolling. Maintains N windows per partition in one ingest pass over a single shared deque per partition. Driven by a clock trigger; emits a synchronised burst of one merged event per partition per boundary crossing.

    Why fused matters here. The gRPC experiment's V6→V7 profile- diff (PR #19) showed that running two separate LivePartitionedSyncRolling instances doubled every per-event pond hop in inclusive time (#routeEvent 15→29%, ingest 12→25%). A single fused rolling does the per-event work once.

    Output schema is [time, <byColumn>, ...mergedColumns] — same partition-column auto-injection as the existing single-window partitioned sync rolling. Duplicate output column names across windows are rejected at construction.

    Single trigger, clock only. Per-window cadence is not supported; cross-partition boundary detection requires a single trigger anyway. Event/count triggers don't make sense for synced cross-partition emission and are not accepted.

    Public API: constructed via the partitionBy('host').rolling( fusedMapping, { trigger }) keyed-form overload on LivePartitionedSeries. User code doesn't import this class directly.

    Type Parameters

    Implements

    Index

    Properties

    Accessors

    Methods

    Properties

    name: string
    schema: Out

    Accessors

    Methods

    • Called by LivePartitionedSeries for each event arriving on a partition's LiveSource. Updates that partition's per-window state in one pass, then if the bucket index advances, emits a synchronised burst of one merged event per known partition at the new boundary timestamp.

      Parameters

      Returns void

    • Pipeline stats snapshot — cumulative counters since construction plus current per-partition state. O(partitions) because windowSize walks every partition's live deque to report the max.

      • partitions: current partition count.
      • eventsObserved: total source events ingested across all partitions. Never decreases.
      • emissions: total merged output events fired. Each clock-trigger tick fans out one event per partition. Never decreases.
      • windowSize: max live deque size across all partitions right now. Useful for spotting partition skew. Returns 0 when no partitions exist. Note: "across partitions" here, not "across windows" (per-partition deques are already shared across all declared windows). See the LivePartitionedSyncRolling.stats cross-reference for the same axis-vs-name caveat.
      • windowsCount: number of declared windows. Static after construction.

      Returns {
          emissions: number;
          eventsObserved: number;
          partitions: number;
          windowsCount: number;
          windowSize: number;
      }