Imagine you're aggregating clickstream events by the minute, but some events show up five seconds after the previous one, even though they happened earlier. 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.