Event Manager is a lightweight embedded library that enables event-based communication between software modules without direct coupling.
It helps reduce inter-module dependencies and improves system modularity, scalability, and maintainability.
The library implements the Observer design pattern:
modules can subscribe to specific events, and when an event is triggered, all registered subscribers are notified automatically.
Each subscriber provides a callback function, which is executed sequentially in the context of the event publisher – making execution flow explicit and predictable, a key requirement in many embedded systems. Here is an example of event-based communication between software modules: