On Wed, Sep 14, 2016 at 5:14 AM, Aljoscha Krettek <[email protected]> wrote: > Hi, > I had a chat with Kenn at Flink Forward and he did an off-hand remark about > how it might be better if triggers where not allowed to mark a window as > finished and instead always be "Repeatedly" (if I understood correctly). > > Maybe you (Kenn) could go a bit more in depth about what you meant by this > and if we should actually change this in Beam. Would this mean that we then > have the opposite of Repeatedly, i.e. Once, or Only.once(T)?
Once triggers are significantly easier to reason about from a user/data perspective, especially in the context of further downstream aggregation. > I also noticed some inconsistencies in when triggers behave as repeated > triggers and once triggers. For example, AfterPane.elementCountAtLeast(5) > only fires once if used alone but it it fires repeatedly if used as the > speculative trigger in > AfterWatermark.pastEndOfWindow().withEarlyFirings(...). (This is true for > all "once" triggers.) Yes, a repeatedly is applied to the early/late firing specifications. The watermark itself is once (marks the window as finished, unless there is a late trigger specified). https://cloud.google.com/dataflow/java-sdk/JavaDoc/com/google/cloud/dataflow/sdk/transforms/windowing/AfterWatermark.FromEndOfWindow
