Apache Beam  is a unified and portable programming model for data processing jobs. The Beam model [2, 3, 4] has rich mechanisms to process endless streams of events.
Complex Event Processing  lets you match patterns of events in streams to detect important patterns in data and react to them.
Some examples of uses of CEP are fraud detection for example by detecting unusual behavior (patterns of activity), e.g. network intrusion, suspicious banking transactions, etc. Also trend detection is another interesting use case in the context of sensors and IoT.
The goal of this issue is to implement an efficient pattern matching library inspired by  and existing libraries like Apache Flink CEP  using the Apache Beam Java SDK and the Beam style guides . Because of the time constraints of GSoC we will probably try to cover first simple patterns of the ‘a followed by b followed by c’ kind, and then if there is still time try to cover more advanced ones e.g. optional, atLeastOne, oneOrMore, etc.