Beware of the LeopardWindows & triggers

Trigger

A window trigger decides when a window emits its result, separately from which events it contains.

Trigger - the rule that decides when a window emits, split from the rule that decides which events it contains: the window trigger streaming engines expose lets one window fire early, on time, late, or over and over. The Dataflow model drew this line deliberately. Windowing says where in event time results are grouped; triggering says when in processing time they materialise.

The default is the watermark trigger: fire once, when the watermark passes the window's end. Everything past the default opens a lattice: early firings before the watermark, late firings after it, and then an accumulation mode question about what each extra firing means, which your sink now has to answer too.

Do you need it? The concept, yes; the configuration surface, almost certainly not. Most jobs want each window exactly once, when it is complete, and that is the default everywhere for a reason. Ubik ships exactly that and nothing else: a window closes when the watermark passes its end, and there is no trigger API to misconfigure. The leopard stays in its filing cabinet.

Sources

Related