What is Event Driven Architecture (EDA)?

IBM Technology
21 May 202112:10

Summary

TLDRIn this informative talk, Whitney from IBM's Cloud team delves into event-driven architectures, highlighting their role in enabling real-time interactions, scalable microservices, and extensible data analytics. She explains the principles of the reactive manifesto, emphasizing asynchronous messaging, scalability, and resilience in system design. Whitney illustrates how events, as immutable statements of past occurrences, facilitate targeted and conversational messaging between services, leading to a responsive and maintainable system. She further explores the benefits of event logs for triggering actions, optimizing data persistence, and supporting stream processing, all of which contribute to a robust, pluggable, and history-aware system.

Takeaways

  • 🌟 Event-driven architectures are designed to enable real-time user interactions, pluggable microservices, and extensible streaming and data analytics.
  • πŸ“œ The Reactive Manifesto provides a set of guidelines for building responsive, resilient, and scalable systems through asynchronous messaging.
  • πŸ”„ Scalability in system design means the ability to expand or contract hardware usage in response to workload changes.
  • πŸ›‘οΈ Resilience implies the absence of single points of failure and the capacity to handle system failures gracefully.
  • πŸ“’ Asynchronous messaging is central to the Reactive Manifesto, allowing for non-blocking communication between system components.
  • πŸ“ An event in this context is an immutable statement of fact about something that happened in the past, used for communication between services.
  • πŸ”„ Event-driven systems allow for highly scalable architectures, as the event producer is not concerned with the number of consumers.
  • πŸ—ƒοΈ Event logs provide a replayable history of events, enabling persistent data storage and the ability to process historical data.
  • πŸ€– The event backbone is the central system through which all events flow, enabling various applications to produce and consume events.
  • πŸš€ Event logs can trigger actions, such as serverless functions, which can be modular pieces of code associated with specific events.
  • πŸ”§ Event-driven architectures support stream processing, allowing for real-time calculations, business rule implementation, and analytics.
  • πŸ”Œ The publish-subscribe (pub-sub) communication model is integral to event-driven systems, facilitating plug-and-play microservices that can easily integrate into the system.

Q & A

  • What is an event-driven architecture?

    -An event-driven architecture is a system design approach that relies on the production, detection, consumption of, and reaction to events. It enables real-time interactions and is highly scalable and resilient, as services react to events without direct coupling.

  • What does the reactive manifesto aim to provide in system design?

    -The reactive manifesto provides a set of community-driven guidelines intended to offer a cohesive approach to system design, emphasizing principles such as message-driven architecture, scalability, resilience, and responsiveness.

  • What are the core values of the reactive manifesto?

    -The core values of the reactive manifesto include building message-driven, asynchronous systems that are scalable, resilient, and responsive, ensuring the system can handle varying workloads and avoid single points of failure.

  • How does event-driven architecture enable real-time user interactions?

    -Event-driven architecture enables real-time user interactions by allowing systems to react instantly to events as they occur. This is achieved through the use of asynchronous messaging and the ability to trigger immediate actions in response to events.

  • What is the difference between messaging and eventing in system communication?

    -Messaging involves direct communication between services, where the sender has knowledge of the receiver. Eventing, on the other hand, involves the production of events without concern for which service is consuming them, promoting a decoupled and scalable system design.

  • Why is data persistence in event-driven architectures considered to be more permanent compared to messaging?

    -In event-driven architectures, data persistence can be more permanent because events are logged and can be stored indefinitely, depending on the system setup. This creates a replayable event log and a history of all events, unlike messaging where data persistence is often transient.

  • What is the role of the event backbone in an event-driven architecture?

    -The event backbone is the central component of an event-driven architecture through which all events flow. It facilitates the distribution of events from producers to consumers, enabling a scalable and responsive system.

  • How can event logs be utilized to optimize and customize data persistence?

    -Event logs can be used to trigger actions, update local data stores, and produce new streams of data that reflect the most current state. This allows for optimized data persistence tailored to the needs of specific services within the system.

  • What is the significance of the pub-sub communication model in event-driven architectures?

    -The pub-sub (publish-subscribe) communication model is significant in event-driven architectures as it allows for a highly pluggable system. Services can easily produce and consume events without direct coupling, promoting extensibility and scalability.

  • How does event-driven architecture support the implementation of business rules and real-time analytics?

    -Event-driven architecture supports the implementation of business rules and real-time analytics by providing a stream of events that can be processed in real-time. This enables systems to make immediate decisions based on current data and trends.

  • What is the relationship between event-driven architecture and serverless functions?

    -Event-driven architecture can trigger serverless functions, which are modular pieces of code that execute in response to events. Once the function completes its task, it can send another event back into the system, creating a reactive and efficient process flow.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Event-DrivenSystem DesignReactive ManifestoAsynchronous MessagingScalabilityResilienceDistributed SystemsMicroservicesStreaming AnalyticsServerlessPubSub Communication