On Microservices and Event-Driven Architectures


An overall enterprise architecture for real-time analytics is possible with the decoupling principle.

I recently participated in a software architecture conference, in which the two leading sessions were “microservices architecture” and “event driven architecture.”

Microservices architecture gained momentum in recent year as a way to break the monolithic database architecture into small independent units that are decoupled and independent. Each unit has its own database, which deviates from the principle of a monolithic normalized database within the enterprise. Microservices is a derivative of the “Service Oriented Architecture” and adds the decoupling principle.

Event-driven architectures have evolved over the last two decades in conjunction with event-driven systems. These architectures follow the agent paradigm in which the basic components are producers, consumers and event-processing agents (in the middle of the drawing).event-driven architectureIn the above architecture, the event-processing agents receive one or more events from producers, which could be IoT sensors, applications, or business processes. The event agents perform some processing (filtering, aggregation, pattern detection), and emit one or more events. The architecture is decoupled; thus an agent does not have any binding to any other agent, producer, or consumer. As such there is a similarity to the microservices architecture.

The differences are that microservices architecture is not necessarily event driven. While in event-driven architecture, an agent is activated by the arrival of an event, in microservices architecture an event can be activated by an explicit call. For instance, if I want to calculate the balance of my bank account, I am calling a service that does this calculation and shows me the result (or just brings it from a database). In contrast, in event-driven architecture, the different functions are not explicitly called but triggered by the occurrence of a specific event (e.g. in connected cars. the velocity exceeds the speed limit).

In event-driven architectures, each agent owns its internal state, but databases are external entities that are not necessarily associated with a single agent.

Since enterprise applications will be blend of event-driven, data-driven and process-driven software units, the decoupling principle provides the possibility to do an overall enterprise architecture based on unified principles.

Related: On error handling as event processing

Want more? Check out our most-read content:

White Paper: How to ‘Future-Proof’ a Streaming Analytics Platform
Research from Gartner: Real-Time Analytics with the Internet of Things
E-Book: How to Move to a Fast Data Architecture
The Value of Bringing Analytics to the Edge
IoT Interoperability: An Internet of Broken Things
Finding Business Value in IoT Services

Liked this article? Share it with your colleagues!

Dr. Opher Etzion

About Dr. Opher Etzion

Dr. Opher Etzion is professor of information systems and head of the Technological Empowerment Institute in Yezreel Valley College in Israel. He is also a former chief scientist of event processing at the IBM Haifa Research Lab (full bio) . Follow him on Twitter @opheretzion.

Leave a Reply

Your email address will not be published. Required fields are marked *