Event-driven Architecture is the de facto standard for building high performant, scalable, resilient, and loosely-coupled application architectures.
A typical event-driven architecture comprises loosely-coupled, self-contained components called event producers, consumers, and brokers. WSO2 Enterprise Integration Platform (EIP) brings in three products to help developers and architects design, build, and operate event-driven systems at scale. These products can play either producer, consumer, or both roles at the same time.
In this two-part article series, I will discuss how you can build distributed event-driven applications with the WSO2 Enterprise Integration Platform.
Part 1 discusses the nature of event-driven applications and why you should choose WSO2 EIP for the implementation.
In Part 2, we’ll discuss how different WSO2 EIP products play producer and consumer roles in a typical event-driven system.
So let’s dive in.
Event-Driven Application Architectures
Diagram taken from an article of Bogdan Sucaciu published here.
Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
An event represents a fact that happened in the past. It is immutable and may carry a state change that occurred in a software or a hardware system.
A user just signed up at a website.
An item has been added to the user’s shopping cart.
A temperature sensor measured the current temperature
Events are different from Commands where they carry intent and may expect a response in return. To understand their difference, you may refer to this article that I wrote some time back.
An event-driven system is composed of loosely-coupled, self-contained components that utilize events to communicate with each other. We can group these components and assign them the following roles based on how they interact with events.
Event producers—Who produces events?
Event consumers—Who consumes events?
Event brokers—Who stores events until they are consumed?
A producer publishes an event to the broker, which stores it until the consumer consumes it. Events are delivered in near real-time, so consumers can respond immediately to events as they occur.
The following figure illustrates this architecture better.
event driven architecture,wso2,wso2 enterprise integrator,enterprise integration,asynchronous communication