Skip to main content
Data Bus

Also known as

  • Event Bus
  • Message Bus

Intent

The Data Bus design pattern aims to provide a centralized communication channel through which various components of a system can exchange data without being directly connected, thus promoting loose coupling and enhancing scalability and maintainability.


iluwatarAbout 3 minBehavioralDecouplingEvent-drivenMessagingPublish/subscribe
Event-Based Asynchronous

Also known as

  • Asynchronous Event Handling

Intent

The Event-Based Asynchronous pattern allows a system to handle tasks that might take some time to complete without blocking the execution of the program. It enables better resource utilization by freeing up a thread that would otherwise be blocked waiting for the task to complete.


iluwatarAbout 3 minConcurrencyAsynchronousDecouplingEvent-drivenFault toleranceMessagingReactiveScalability
Event-Driven Architecture

Also known as

  • Event-Driven System
  • Event-Based Architecture

Intent

Event-Driven Architecture (EDA) is designed to orchestrate behavior around the production, detection, consumption of, and reaction to events. This architecture enables highly decoupled, scalable, and dynamic interconnections between event producers and consumers.


iluwatarAbout 3 minArchitecturalAsynchronousDecouplingEnterprise patternsEvent-drivenMessagingPublish/subscribeReactiveScalability
Event Queue

Also known as

  • Event Stream
  • Message Queue

Intent

The Event Queue pattern is designed to manage tasks in an asynchronous manner, allowing applications to handle operations without blocking user interactions or other processes.

Event Queue Visualised

iluwatarAbout 3 minConcurrencyAsynchronousDecouplingMessagingEvent-drivenScalability
Event Sourcing

Also known as

  • Event Logging
  • Event Streaming

Intent

Event Sourcing is a design pattern that advocates for the storage of state changes as a sequence of events. Instead of updating a record in a database, all changes are stored as individual events which, when replayed, can recreate the state of an application at any point in time.


iluwatarAbout 3 minArchitecturalDecouplingEvent-drivenFault toleranceMessagingPersistenceScalabilityTransactions