Вот простой пример:
val pattern =
Pattern.begin[Event]("start").where(_.getId == 42).
next("middle").subtype(classOf[SubEvent]).where(x => x.getVolume == **first event matched**.getVolume) ...
По сути, второму событию («среднему») необходимо получить доступ к состоянию первого события («начало»). Можно ли сделать это в FlinkCEP, не требуя внешнего состояния?