What is Event-Driven Architecture?
Event-driven architecture is a software paradigm in which services and applications communicate asynchronously through publishing and consuming events. An event is anything that happens in a business environment or their customers’ ecosystem.
An obvious advantage is that services can be decoupled because of the asynchronous communication. This means they no longer need to rely on each other for scaling and don’t impact other services in case of failure.
Working with events also makes real-time data processing possible from several sources: not just software applications and services, but all kinds of IoT devices as well.
Read more on our blogIs Event-Driven Architecture tightly coupled?
It’s quite the opposite. There is NO direct coupling in an Event-Driven Architecture. The applications and services that live in the architecture will produce data as events to an event hub, which in turn notifies any event consumers that have marked their interest in the event. There is no request-response interface in between 2 services, they have no dependencies and live totally independent.
Event-Driven Architecture for microservices
They go hand in hand. Microservices are organised around business capabilities and need to be loosely coupled. Microservices that own a set of business capabilities will also own a set of business events expressing exactly what happened in the process. Loosely coupling is guaranteed because of the lack of request-response integrations.
Event-Driven Architecture for batch processing
Batch processing is often introduced for processing of large data sets or time consuming jobs without putting stress on your systems.
In an Event-Driven Architecture each execution can be scaled to not impact performance of a running system. Events are produced near real time and they often get processed in several systems. Each system consumes the data according to the processing power it has available, event hubs fully support horizontal scaling for these consumers.