A Complex Event Processing (CEP) system takes as input a stream of events, along with a set of patterns, defining relations among the input events, and detects instances of pattern satisfaction, thus producing an output stream of complex events. Typically, a CEP system needs to handle high-volume and high-velocity data streams and must be able to do so with strict latency requirements. It is therefore crucial for such systems to be extremely efficient.
For this thesis, the candidate will develop an expressive and highly efficient CEP engine in Python which will have the capacity to work upon real-time streams of events. The already existing CEP engine, Wayeb, will be used as a reference and baseline. Optimization techniques, like query re-ordering, will be explored, as well as the potential for applying distribution/parallelization methods.
Bibliography:
Deliverable (besides the thesis itself): A Python CEP engine, semantically equivalent to Wayeb.