EDA – Event Driven Architecture

Event-driven architecture (EDA) is a push-based communication between publisher and consumer, which predominantly use for proactive notification in real time environment.
For e.g. Fraud notification from credit card Company, shipping, order fulfillment etc.
EDA use to communicate with consumer with minimum or no delay and avoid busy-wait thread stats.
EAD is a style of application architecture can be implemented in any language, which can improve responsiveness, throughput and flexibility.

An EDA is extremely loosely coupled than client/server paradigm because the publisher doesn’t know the identity of the consumers. This leads to an implementation which is easier to extend, evolve and maintain, giving you more flexibility and reducing maintenance cost.

EAD
Listener acts as asynchronous receiver, which automatically receives messages as they’re delivered on the channel.

Benefits:
1. EAD utilize existing resource efficiently.
2. This leads to an implementation which is easier to extend, evolve and maintain, giving you more flexibility and reducing maintenance cost.
3. This results in lower operational costs, increased utilization and happier end-users.
4. There is no direct coupling between the publisher and the consumer i.e. loosely coupled
5. Prevent block or wait in queue

Conclusion:
Business needs to make more responsiveness and react to certain situation as they occur. An Event Driven Architecture (EAD) monitor changes in state and respond it in real time. Some scenario where need quick reaction we could use EDA, while other areas still pull and scheduled pattern could be used. The main point is to understand the use case scenario and advantage on it before using EDA.

References:
http://en.wikipedia.org/wiki/Event-driven_architecture
http://www.eaipatterns.com
http://www.reactivemanifesto.org/
http://en.wikipedia.org/wiki/Observer_pattern

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s