Event-time windows without watermark

warningwindowed-aggregation-without-watermark

Event-time windows need a watermark to know when a window is complete. Without one the processor either waits forever or closes windows early and silently drops late events.

Severity
warning
Selects
every node of kind stream-processor
Components in scope
34
What it checks

It looks at every node of kind stream-processor, and fires when:

  • — all of these hold:
  • — the node's `windowing` is "event-time"
  • — the node's `watermarkSeconds` has no value
Message
Stream processor '{{node.id}}' windows by event time but declares no watermark. Late data handling is undefined.

{{node.id}} style paths are filled in from the node, the edge or the design the finding is about.

Applies to · 34 components
Tripped by · 14

Reference designs whose broken twin names this rule in its header. The gate reads the same header, and fails when a rule no design trips.

Source
# yaml-language-server: $schema=../schema/rule.schema.json
# Event-time windows need a watermark to know when a window is complete. Without one
# the processor either waits forever or closes windows early and drops late events.
# Tripped by: designs/doordash-delivery.broken.yaml
schemaVersion: "1"
type: "rule"
id: "windowed-aggregation-without-watermark"
severity: "warning"
select:
  node:
    kind: "stream-processor"
when:
  all:
    - prop: "windowing"
      equals: "event-time"
    - prop: "watermarkSeconds"
      exists: false
message: "Stream processor '{{node.id}}' windows by event time but declares no watermark. Late data handling is undefined."

The same page as markdown, for an agent: /catalogue/rules/windowed-aggregation-without-watermark.md