Watermarks — Reasoning About Time in an Out-of-Order Stream
Post 2 ended on a hard problem: you need event-time results, but events arrive late and out of order, so you never know when you've seen everything for a given time. Watermarks are stream processing's elegant answer — a running estimate of how far event time has progressed, letting you decide when it's safe to produce a result. They're the mechanism that makes correct event-time computation possible over a messy, unbounded stream.
Watermarks are stream processing's answer to late, out-of-order events: a running estimate of how far event time has progressed, letting you decide when it's safe to emit a result. How they make the completeness-vs-latency tradeoff explicit and tunable, and how to handle late events.