Ensure your source or table has a TIMESTAMP or TIMESTAMPTZ column representing event time.
When creating the source or table, declare a watermark using WATERMARK FOR <event_time_column> AS <event_time_column> - INTERVAL '<delay>' to bound how late data is accepted.
Use the watermarked column in window functions: TUMBLE(<table>, <event_time_col>, INTERVAL '<size>'), HOP(...), or SESSION(...).
Build a materialized view over the windowed TVF to compute aggregations per window.
Query the view to see window start/end and per-window aggregates.
Tune the watermark delay based on observed source latency; too small discards valid late records, too large increases result latency.
Known gotchas
RisingWave only emits final window results after the watermark passes the window end; queries will show no rows for windows that have not yet closed.
Watermark expressions must reference the declared event-time column; expressions over computed columns may not be accepted in older versions.
Mixing processing-time and event-time windowing in the same view can produce surprising results — be explicit about which time domain each computation uses.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp