Catalog
concept#Product#Delivery#Architecture#Event-Driven#Responsiveness

Event-Driven Architecture

An architectural approach based on the generation and processing of events to decouple and make systems responsive.

Event-Driven Architecture (EDA) is an architectural approach that focuses on the generation, transmission, and processing of events.
Established
Medium

Classification

  • Medium
  • Technical
  • Architectural
  • Intermediate

Technical context

Databases for storing eventsAPIs for communication with other systemsMonitoring tools for event tracking

Principles & goals

Decoupling of componentsReactive programmingEvent-based communication
Build
Enterprise, Domain, Team

Use cases & scenarios

Compromises

  • Event loss during system failures
  • Difficulties in tracing events
  • Complexity in integrating components
  • Clearly define and document events
  • Use scalable infrastructure
  • Regularly review event processing

I/O & resources

  • Events from users or systems
  • Configuration settings for event processing
  • Data sources for events
  • Processed events
  • Notifications or alerts
  • Analytical reports

Description

Event-Driven Architecture (EDA) is an architectural approach that focuses on the generation, transmission, and processing of events. In EDA systems, components communicate through events generated by an event emitter and processed by one or more event handlers. This approach promotes decoupling of components and enables a responsive, scalable, and flexible system architecture.

  • Increased flexibility and adaptability
  • Improved scalability
  • Faster response times

  • Complexity in error handling
  • Higher demands on system architecture
  • Potential issues with consistency

  • Response Time

    The time taken to respond to an event.

  • Throughput

    The number of events processed per unit of time.

  • Error Rate

    The percentage of erroneous events.

E-Commerce Order System

An e-commerce system that processes orders through events to ensure a responsive user experience.

Financial Transaction Processing

A system that processes financial transactions in real-time and uses events to update account balances.

Social Media Notification System

A notification system that uses events to inform users about new interactions.

1

Design the event processing system

2

Integrate event sources

3

Set up monitoring and maintenance

⚠️ Technical debt & bottlenecks

  • Insufficient documentation of events
  • Outdated event processing logic
  • Lack of tests for event processing
Event lossComplexityConsistency issues
  • Ignoring events that are important for processing
  • Not properly validating events
  • Not processing events in the correct order
  • Assuming all events are equally important
  • Overlooking errors in event processing
  • Underestimating the complexity of system integration
Knowledge in software architectureExperience with event-driven systemsAbility to troubleshoot complex systems
Real-time data processingScalable systemsDecoupling of services
  • Event processing must be reliable
  • Events must be processed in the correct order
  • Systems must be scalable