Rollup Properties

Aggregate values across related rows with durable queues, dependency propagation, and idempotent backfill.

Overview

Description

Rollup Properties materialize aggregates over relation-linked rows and propagate changes through a durable computed-refresh queue.

Rollup Properties is delivered through typed package contracts rather than a surface-specific shortcut. Its primary modules separate the public input or configuration shape from validation, durable state, and the operation that produces the result. That separation lets product surfaces and integrations invoke one implementation while tenant scope and existing domain rules remain in force. Errors stay bounded to the request instead of weakening the underlying data contract.

Selling Points

  • Keeps cross-row totals current after create, edit, archive, or restore.
  • Recomputes dependent formulas after rollups.
  • Provides an idempotent backfill for schema drift.
  • Applies one typed package contract across every supported caller and surface.
  • Keeps invalid inputs and unavailable dependencies from silently widening durable state.

User Story

As a project owner, I see task totals and budgets update when any linked record changes. In practice, I configure or invoke the capability through a supported surface, supply only the inputs its contract accepts, and receive a result governed by the same rules as every other caller. I can inspect the resulting row, setting, event, or query state and correct my input when validation fails. I walk away with a repeatable workflow rather than a one-off client implementation.

Extension Surface

Configurable: users select the relation, target property, and supported aggregate; queue semantics remain fixed core.

The configurable rating is evidenced by packages/dotabases/src/services/computed-refresh-coordinator.ts, which defines the supported seam used by trusted callers or configuration. The capability can be composed wherever that contract is available, but its invariants are not replaced by tenant-authored executable code. This keeps extension honest: callers control documented inputs and policy choices while the package owns validation and safety.

Capabilities & Limits

  • Capability: Executes the scoped workflow described above through the cited live implementation paths.
  • Capability: Preserves typed validation and applicable tenant, schema, lifecycle, or service boundaries.
  • Limit: Refresh is asynchronous and may be seconds stale. Iteration caps bound pathological dependency graphs. Rollup Properties supports the concrete operations described here and composes them with tenant, schema, or lifecycle checks already owned by the package. It does not grant raw database access, make unsupported inputs valid, or assume that optional providers and downstream consumers exist. Callers remain responsible for permissions and meaningful configuration, and product rendering or external delivery stays outside the package unless explicitly stated.

Implementation Map

  • packages/dotabases/src/services/computed-refresh-coordinator.ts
  • buildComputedRefreshCoordinator
  • packages/dotabases/src/properties/computed-validation.ts
  • validateComputedProperties
  • packages/db/src/schema/dotabases.ts
  • dotabaseComputedRefreshQueue

Properties

Property
Value
product
dots-platform
extensibility
configurable
module
Dotabases
packages
dotabases, db
status
shipped
surface
background
summary
Aggregate values across related rows with durable queues, dependency propagation, and idempotent backfill.

Connections

Rollup Properties · Explore connections

  • requirestoTyped Property System
  • implementstoDS_Dotabase-Dashboards — Dashboard View, Aggregation Engine & Computed Properties
  • implementstoDS_Dotabases — Comprehensive Module Spec
  • complementstoFormula Properties
  • implemented bytopackages/db/src/schema/dotabases.ts
  • implemented bytopackages/dotabases/src/internal/properties/computed-validation.ts
  • implemented bytodotabaseComputedRefreshQueue
  • implemented bytovalidateComputedProperties
  • complementsfromFormula Properties
  • requiresfromDashboard Analytics and Widgets

Connected Records10

Complements
Implemented by
dotabaseComputedRefreshQueue
packages/db/src/schema/dotabases.ts
packages/dotabases/src/internal/properties/computed-validation.ts
validateComputedProperties
Implements
DS_Dotabase-Dashboards — Dashboard View, Aggregation Engine & Computed Properties
DS_Dotabases — Comprehensive Module Spec
Requires
10 connections.