Imagine you're aggregating clickstream events by the minute, but some events show up three seconds after their window has already closed. Do you wait forever? Or do you drop them?
Watermarks are the answer.
This post will try to explain how watermarks work in stream processing. But, instead of drowning you in jargon, I'll build up the intuition step by step with an interactive visualizer (built with Claude) that lets you watch watermarks advance and windows fire in real time.
