Distributed Complex Event Processing (DCEP) systems analyze and process event streams from a variety of heterogeneous sources to extract relevant event patterns (e.g., detecting traffic jams from sensors in the street). Such systems are composed of event processing operators spread across different computing nodes, forming distributed operator networks. Fault tolerance and resilience is a major concern for modern distributed systems and DCEP are no exception.
In the context of disaster management and emergency reaction, such systems must provide a high level of resilience and service guarantees. In terms of fault tolerance, for instance, temporary node failures should not lead to permanent loss of operator or system state. Additionally, the processed events and the resulting deductions by the system should be traceable and verifiable, and operators should be able to process and analyze both real-time and historical event stream data. These properties are particularly important in a disaster recovery scenario (e.g., an earthquake) where several nodes may be lost, and still processing real-time data from the disaster area might be crucial for the rescue operations. The goal of this thesis is to design a programming language for data-intensive computations that automatically ensures that the system is fault-tolerant and remains operational even when a major disruption occurs. The technical realization is based on the combination of the multitier language ScalaLoci  with the persistent event storage ChronicleDB  to enable the development of resilient DCEP operator networks. ScalaLoci is a domain specific language that allows developers to build distributed applications within a single code base. The ScalaLoci compiler splits the application accordingly into the distributed components, i.e. into the distributed operators of a DCEP network. ChronicleDB is a persistent event storage under development at the University of Marburg. It provides efficient event storage and querying capabilities for both real-time and historical event stream data.
The candidate will integrate ChronicleDB into ScalaLoci in an efficient and performant way, e.g. by directly deploying a ChronicleDB instance with each operator, combined with in-language query support. The operators of a DCEP network built with ScalaLoci can then use ChronicleDB for efficient event stream processing, historical event logs for accountability, and fault tolerance through techniques such as e.g. Event Sourcing . The work comprises the analysis of a suitable approach, the implementation of the solution, and potentially an evaluation to showcase the solution's applicability given the aforementioned requirements.
If you are interested in the topic or have any further questions, please contact: Nafise Eskandani (firstname.lastname@example.org-…)