Skip to content

Opt-in intra-bar notification conflation for aggregator hubs #2080

Description

@DaveSkender

Problem

TickAggregatorHub/QuoteAggregatorHub notify downstream observers on every forming-bar update. At high tick rates every intra-bar tick triggers an OnRebuild cascade in all downstream indicator hubs (rollback + re-emit of the forming bar). PR #2073 made each of those rollbacks O(1) for retrofitted hubs, but the per-tick fan-out itself remains — and many consumers (bar-close bots, batch strategies) do not need forming-bar values at all.

Proposal

An opt-in conflation mode — likely a BinarySettings bit or aggregator constructor flag — where the aggregator only notifies observers when a bar closes (the forming bar is still maintained internally and queryable via Results/Snapshot()):

  • Default unchanged: notify per update (charting/forming-bar consumers keep current behavior)
  • Conflated: downstream chains compute once per bar instead of once per tick — an ~N× reduction in downstream work for N ticks/bar

Considerations

  • Late corrections that reopen a closed bar must still notify
  • Document the trade-off (downstream Results lag the forming bar by design when enabled)

From the v3 use-case/ergonomics assessment (severity: Medium).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions