## 2 Related Work  
Research has attempted to define and delineate the Internet of Things [3; 4; 5; 6; 7; 8] as well as its structural elements. In the area of this study, which is the creation and operation of IoT services for managing devices, there are several opinions and research on IoT architectures [9; 10; 11; 12]. Specifically, many studies [13; 14; 15] suggest the exploitation of Microservices Architecture [16; 17; 18], Service-Oriented Architecture [19], and, more generally, Event-Driven Architecture [20; 21; 22] for the creation of IoT services. Event-Driven Architecture (EDA) refers to an abstract concept of a responsive system that promotes the production, detection, consumption of, and reaction to events. Consequently, research [13; 14; 15; 23; 24] suggests the utilization of EDA for creating IoT systems. An event-driven system typically consists of event producers, event consumers, and event channels. Event producers and consumers may be services and IoT devices such as sensors and actuators. Event producers generate streams of events that are distributed through event channels to multiple event consumers. Such a system uses the publish-subscribe pattern [25] for communication and control and provides concurrent responsive processing. Consequently, it is especially suitable for applications that use loosely coupled real-time communication and support sensing. Thereby, users and systems can respond to and process these events in a rapid and appropriate manner. Event processing usually includes Event Stream Processing (ESP) [26; 27] and Complex Event Processing (CEP) [27; 28; 29]. A big issue for many studies in the domain of IoT [30; 31; 32; 33; 34; 35; 36], including more general studies as those mentioned before, is management of the massive influx of data generated by devices in the physical environment while sensing and actuating [37]. Those data are treated as events, as they usually define a significant change in state and must be appropriately processed in a timely and responsive manner. In order to be meaningful in the application context, the events must be transformed. In its broadest definition, a transformation [38] refers to any operation that takes as input a single event or stream of events and produces a single event or stream of events as its output. The produced type of event or stream of events usually has different semantics than the input event or stream of events. A set of techniques and tools that provides visibility and control over event-driven architectures is Complex Event Processing [29]. According to [PERSON] and [PERSON] [27], Complex Event Processing (CEP) [29] belongs to the broader category of applications known as Information Flow Processing (IFP). Together with Data Stream Processing (DSP), they are the two most well-known and widespread application models, capable of timely processing of large amounts of information as it flows from the peripheral (e.g., the physical world) to the Center of the System. The Complex Event Processing model views flowing raw data as messages of events happening in the external world, which have to be pro cessed and transformed into higher-level events to understand what is happening in terms of domain knowledge. Regarding communication, CEP is primarily based on an interaction style known as publish-subscribe, a message-oriented interaction paradigm based on an indirect addressing style that comes in two types: topic and content-based. Finally, another defining aspect of CEP is that it emphasizes giving precise semantics to the information chunks being processed. Some of the aforementioned studies support the potential of Complex Event Processing to extract high-level information from these data and thus enable users and systems to have effective, precise, and timely interactions with the physical environment [31; 39].