Accelerating Event-driven Architecture with Domain-driven Design • Brian Zambrano • GOTO 2023

Discover how to accelerate event-driven architecture by understanding the problem domain with domain-driven design, identifying bounded contexts, and collaborating with experts through event storming and pivotal events.

Key takeaways
  • Organize into domain experts to understand the problem domain.
  • Event-driven architecture is an architectural style of building loosely coupled systems.
  • Use the analogy of a coffee shop to illustrate the concept of domain boundaries.
  • Identified a bounded context as a problem domain that has clear boundaries and a cohesive unit of functionality.
  • Event storming is a tool to help understand the problem domain and identify bounded contexts.
  • Bounded contexts can be independent and overlapping, and can be identified by looking for areas of duplication.
  • In event-driven architecture, messages are passed between bounded contexts to implement integration.
  • Identification of domain boundaries is an iterative process and requires collaboration with domain experts.
  • The main goal is to come to a shared understanding of the problem domain.
  • Miscommunication between stakeholders is a common issue and can be addressed through event storming.
  • The spectrum of people involved in this process should be widened, including domain experts, engineers, and business folks.
  • The process of finding the right scope requires considering the problem domain, bounded contexts, and interfaces.
  • The idea of event-driven architecture is not just about using events, but about understanding the problem domain and identifying bounded contexts.
  • The concept of the “elephant” refers to the messiness of real-world domains, where boundaries are not always clear-cut.
  • Event storming is a way to come to a shared understanding of the problem domain and identify bounded contexts.
  • The concept of pivotal events refers to the points in the system where changes happened or are happening.
  • The importance of collaboration with domain experts in identifying domain boundaries is highlighted.