Event based systems represent an area of information and communication technology (ICT) that is nowadays present in a large variety of business solutions. An event represents essentially any observable occurrence that takes place at the level of a component in a system, which is of interest for other components. Some examples of events can include a change in a stock market quote, the variation in the heart rate of a patient, or an increase on the power consumption counter in a house.
All these situations have in common a producer/consumer communication paradigm used in the system: producers generate the events, and various consumers are interested either in the events themselves or in some information derived from those events. Therefore, producers and consumers are typically separated by a mediator service, whose job is to compare the interests of consumers with the produced events, and to notify only the consumers where a positive match is identified.
Let’s consider the simple example of the stock market, illustrating a publish/subscribe event based system. Here the producer can be a financial agency that issues periodically information containing stock quotes data (e.g., price, variation, etc.). The consumers can be represented by investment companies, which can have various interests ranging from a simple raise or drop in a stock quote value up to more complex computations involving analysis of some stocks that change over a period of time. The mediator service can be composed for instance of a distributed set of brokers that match the published stock quote information with subscriptions containing the interests of the investment companies.
Multiple other examples of distributed event based systems exist.
Internet-of-Things (IoT) applications used in timely concepts as intelligent houses can use complex event processing at the level of the mediator service for analyzing event data received from sensors placed inside a building in order to perform automated functionalities. Real time Big Data processing is another key area of application for event based systems. This covers situations where data is produced in large volumes and storage demands for post-processing can constitute an issue. Here, the mediator service is tasked with processing vast amount of data received as event streams, and extract aggregate information in real time.
The figure above, although focused on the initial stock market example, depicts the three main general categories of issues that arise in such contexts, which we target: