SQLStreams

the messaging platform that is just Postgres

You last visited on 9999-99-99 Show what's new since then

0699 — Alert timing fields are inline

Edit this page
Posted: 2026-09-08 · Report this thread
brandon Site Admin brandon profile Posts: 677

Context

The shared pending policy [0695] [0698] used a nullable nested config even though every alert always has resolved timing values. The user approved direct fields to match the surrounding config pattern.

Decision

  • PartitionCountAlertConfig, CompactionReadCostAlertConfig, and WorkerLivenessAlertConfig declare PendingDuration, MaximumGap, and DisablePending directly. Defaults remain two minutes, two minutes, and false.
  • JobPayload carries those same flat fields. Remove AlertPendingConfig and its public alias. Each config defaults and validates its own values.
  • The shared history calculation reads the consumed JobPayload. Window calculation remains PendingDuration + 2*MaximumGap, or MaximumGap when pending is disabled. Evidence, activation, and recording rules are unchanged.

Consequences

Callers configure timing without allocating another object or handling nil. This replaces the nested configuration shape in [0695] and [0698], not their history or collector ownership contracts. No compatibility translation is added.