## 3 An Event-Based IoT Architecture  
The proposed architecture draws on and extends the architecture presented in [42]. It is technology-agnostic and, at the same time, infrastructure-agnostic, serving full or hybrid integration in any computing model (edge, fog, cloud). Further, it is a symmetrical representation of the original architecture [42], and while it retains many of its dimensions, layers, and components, the assumptions and limitations regarding how services are created in the corresponding layer have been removed. The architecture serves any IoT environment, including IoT devices, which are divided into two main categories: Sensors and Actuators. Therefore, two basic notions are served: Capture and Act. The architecture is event-driven, and the communication of the components is asynchronous. The essential notion of the architecture is the event [43]. An event is a notable thing that happens inside or outside the defined business. It may signify a measurement, a situation, a state, a trigger, a signal, a threshold, a problem, an opportunity, and more. In the context of IoT, those notable things usually serve the notions of sensing and actuating. As a term, event is often used interchangeably to refer to both the specification (definition) of the event and each individual occurrence (instance) of the event. Furthermore, for an event to be meaningful to downstream subscribers (human, hardware, and software), it is imperative that the event (and its attributes as a whole) is specified in business terms, not data or application terms. In the context of the proposed architecture, an event happens inside or outside the defined business and is immediately disseminated to all interested parties (human, hardware, and software). The interested parties evaluate the event and optionally take action. The event-driven action may include invocating a service, triggering a business process, or further information publication/syndication. Next, we present the layers of the architecture with their corresponding components, as shown in Figure 1.  
**IoT Physical**[42]: IoT Physical is a layer of the architecture and includes the physical world, IoT devices (Sensors and Actuators), Network Gateways and Routers, as well as peripheral computers on which programs are executed, usually composed microcontrollers. Representative examples: (i) An IoT device with sensing capabilities (sensor) that measures the air temperature and transmits it to the microcontroller every second, and the microcontroller transforms it and pushes it to a topic in an MQTT. (ii) An IoT device with actuating capabilities (actuator) that receives a binary command from the microcontroller to open or close the roof vent in a greenhouse. The microcontroller receives data in real time by subscribing to an MQTT topic. **Applications and Clients**[42]: Application is a layer of the architecture and includes, among other things, mobile applications, front-end applications, clients, and interfaces with third-party systems. From this layer, the user can learn and manage the situation in the physical world. Representative example: A mobile application through which the user can see a greenhouse's temperature and remotely open or close the roof vent. **Center of the System**[42]: The Center of the System is the layer that includes all those components that allow the management of the physical world as well as the creation of applications. It establishes communication with the IoT Physical and Applications and Clients layers, provides structures for creating event-driven services, supports interoperability, and ensures the correct flow of data in the direction for which it is intended. The Center of the System is essential for our research and consists of the following components. **Event Bus**[42]: It is quite different from typical brokers and is shaped by a different set of forces.