Today’s IT systems consist less and less of individual stand-alone applications, but rather of constantly growing network connections such as microservices, legacy components, apps, etc. These are often developed and maintained not only by different teams but also by different vendors, and are also operated at different locations. The number of possible interaction paths between interdependent software components increases exponentially with their number. This results in a number of challenges:
- Failure safety: Failure of a single component can lead to a chain reaction that brings the entire system to a standstill.
- Data protection: In a complex, confusing network of communication channels, it is difficult to ensure that sensitive data only goes where it is allowed to go.
- Latency: With classic polling-based communication (component A polls component B for new data at cyclic intervals), latency times arise that can build up exponentially in complex system networks.
- Operating costs and environment: Constantly running services cause high operating costs and CO2 emissions, even if they are idle for a long time.
Event-driven systems can help to overcome these challenges. They establish a central switching point (Event Router) between dependent components, which are thereby coupled with each other. Furthermore, messages are exchanged between components on a push basis. This results in the following advantages, among others:
- The failure of a single component does not lead to a total failure; messages to temporarily unavailable components can be buffered by the Event Router, so there is no loss of data.
- An event router can act as a central location for managing security policies to ensure data protection.
- Push-based communication instead of polling enables short latency times.
- Idle components can be shut down and automatically reactivated when needed to save operating costs and also CO2 emissions.