Github user Aitozi commented on a diff in the pull request:
https://github.com/apache/flink/pull/6104#discussion_r192428038
--- Diff: docs/dev/libs/cep.md ---
@@ -1524,7 +1524,52 @@ In `CEP` the order in which elements are processed
matters. To guarantee that el
To guarantee that elements across watermarks are processed in event-time
order, Flink's CEP library assumes
*correctness of the watermark*, and considers as *late* elements whose
timestamp is smaller than that of the last
-seen watermark. Late elements are not further processed.
+seen watermark. Late elements are not further processed. Also, you can
specify a sideOutput tag to collect the late elements come after the last seen
watermark, you can use it like this.
+
+<div class="codetabs" markdown="1">
+<div data-lang="java" markdown="1">
+
+{% highlight java %}
+PatternStream<Event> patternStream = CEP.pattern(input, pattern);
+
+OutputTag<String> lateDataOutputTag = new
OutputTag<String>("late-data""){};
+
+OutputTag<String> outputTag = new OutputTag<String>("side-output""){};
+
+SingleOutputStreamOperator<ComplexEvent> result = patternStream
+ .sideOutputLateData(lateDataOutputTag)
+ .select(
+ new PatternTimeoutFunction<Event, TimeoutEvent>() {...},
+ outputTag,
+ new PatternSelectFunction<Event, ComplexEvent>() {...}
+ );
+
+DataStream<String> lateData = result.getSideOutput(lateDataOutputTag);
+
+
+{% endhighlight %}
+
+</div>
+
+<div data-lang="scala" markdown="1">
+
+{% highlight scala %}
+val patternStream: PatternStream[Event] = CEP.pattern(input, pattern)
+
+val lateDataOutputTag = OutputTag[String]("late-data")
+
+val result: SingleOutputStreamOperator[ComplexEvent] = patternStream
+ .sideOutputLateData(lateDataOutputTag)
+ .select(outputTag){
--- End diff --
OK, I remove the timeout tag to reduce confusion, and fix a little error in
before doc(the sequence of the parameter is wrong)
---