EDA (Event Driven Architecture)

The Event driven Architecture of software solutions is based on event production, event streaming, and even consumption. The events produced in EDA are streamed to be consumed by the event consumer.

Event producers will produce the events and the events will be streamed via a streaming pipeline to be consumed by the event consumer.

Events in EDA are of multiple types and formats and a lot of data types can be shared via events.

Message brokers like Kafka are leveraged to stream data and manage data streams.

Event-driven architecture is on real real-time basis, the lower the latency the better it is, The services are connected through event streaming and processing. The interaction between services is based on event triggers which can be generated in a mechanical and automated fashion.

Apache Kafka is a scalable solution that abides by the principle of event-driven architecture (Kafka is a messaging system utilized to communicate events via event streams).

There are primarily three types of event-driven architecture.

  • Simple EDA
  • Stream EDA
  • Complex EDA

Event processing can be simple event processing, event stream processing, ESP, or complex event processing.

Simple Event Processing: SEP

Simple event processing is a type of event processing in which a simple user-triggered event will result in a measurable change in condition.

Event trigger -----> downstream action initiated

Simple event processing facilitates real-time work flow.

Event Stream Processing: ESP

The event generated consists of both ordinary and notable events. Event stream processing is leveraged to drive the real-time processing of information.

ESP ----> Ordinary events ---> Notable events

Complex event processing: CEP

Complex event processing is a type of event processing where complex events and cross events are processed with variable time duration

Complex event stream processing and management is a core part of complex event processing.

The events co-relations can be CASUAL | TEMPORAL | SPATIAL

CEP consists of the following components:

1) Event interpreters

2) event pattern definition

3) matching techniques

4) co-relation techniques

A large-scale enterprise level software system may involve all three event processing types: SEP | ESP | CEP

Mature event-driven architecture will involve all the above-mentioned event-driven architecture types. Event-driven architecture leverages event routes, which helps in event routing between multiple decoupled services.

With the help of event-driven architecture,  all the events can be polled, filtered, and routed based on event stream and consumption requirements.

EDA is well synchronized with the AGILE DEVELOPMENT MODEL.

Event-driven architecture for certain software use cases can be highly cost-effective, for eg Apache Kafka and Rabbit MQ are the set of message queues that are heavily leveraged in state of art modern hyper scalable software systems. Both Kafka and Rabbit MQ are EDA-based systems. 

Event-driven is well utilized in integrating heterogeneous systems, scalable event routing, parallel processing, resource monitoring & connecting loosely coupled microservices and APIs.

AWS event bridge Apache Kafka / AWS SNS Rabbit MQ are some of the Event Driven Services that are leveraged by Fortune 500 companies. 

Diagram

The article above is rendered by integrating outputs of 1 HUMAN AGENT & 3 AI AGENTS, an amalgamation of HGI and AI to serve technology education globally.

(Article By : Himanshu N)