Currently the CEP library had a somehow fuzzy way to handle late events. Essentially:
1) it accepts all events (late and early)
2) it sorts them based on event time
3) whenever a watermark arrives, it feeds them into the NFA.
This does not respect event time, as late events are still processed.
In addition, given that the order in which elements are processed matters, this could lead to wrong results as events may be processed by the NFA out-of-order with respect to their timestamps.
This issue proposes to assume correctness of the watermark and consider as late, events that arrive having a timestamp smaller than that of the last seen watermark. In addition, late events are not silently dropped, but the user can specify to send them to a side output, as done in the case of the WindowOperator.