Event-driven architecture (EDA)
The Agile methodology defines and focuses on self-organising teams. With Agile development, we focus on people and collaboration. As we progress in product development, we pull and release team members as and when required. It ensures that no fixed and contemplated approach needs to be followed blindly.
Extending the agility to technology architecture of any application, we have seen the emergence of decoupled architecture, micro services architecture, and event-driven architecture.
An event-driven architecture helps the technology teams to build a dynamic system that can be flexible and adaptive to changes (external/internal) and take decisions in real-time. Event-driven architecture also helps to improve the scalability and responsiveness of applications and access to data and context needed for better business decisions.
Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
Key components of the architecture:
· Producer: Detects the event, converts the event into a message (Ex: JSON payload), and places it in the event router for further processing.
· Router: Filters and propagates the message from event producer to event consumers.
· Consumer: Consumes the message from the event router and performs a specific task.
Key benefits of such applications are:
Independence – It helps to exploit opportunities to scale as well as mitigate risks of failure.
Scaling can be done without affecting other services. Similarly, if the service fails, the rest of the application still keeps on running.
Development Agility – You no longer need to write custom code to poll, filter, and route events; the event router will automatically filter and push events to consumers.
Control on Cost and Operations: Event-driven architectures are push-based, so everything happens on-demand as the event presents itself in the router. This way, you’re not paying for continuous polling to check for an event.
When we can use the event-driven Architecture:
- Integration with 3rd party SaaS-based application
- Gaming Applications
- E-commerce Applications
- IoT Applications
- BPM/Automation Applications
- Commercial Transactions/Financial Events