0% found this document useful (0 votes)
34 views10 pages

DomainDrivenDesign 04

Uploaded by

JonatasAfonso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views10 pages

DomainDrivenDesign 04

Uploaded by

JonatasAfonso
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

TRAINING CENTER

Domain Driven Design


Module 4
Architecture and Event-Driven Modeling
D o m a i n D r i v e n D e s i g n

Module Overview

Domain Events

Event Storming

Extreme Modeling

1
D o m a i n D r i v e n D e s i g n

Domain Events
Eric Evans
DDD Author

“An event is something that has happened in the past. A domain event is,
something that happened in the domain that you want other parts of the same
domain (in-process) to be aware of. The notified parts usually react somehow to the
events.
For example, if you're just using Entity Framework and there must be a reaction to
some event, you would probably code whatever you need close to what triggers the
event. So, the rule gets coupled, implicitly, to the code, and you must investigate
the code to, hopefully, realize the rule is implemented there.”

2
D o m a i n D r i v e n D e s i g n

Domain Events

3
D o m a i n D r i v e n D e s i g n

Event Storming

“Event storming is a rapid, lightweight, and underappreciated group modeling technique


that is intense, fun, and useful for accelerating development teams. The brainchild of
Alberto Brandolini, it's a synthesis of facilitated group learning practices from
Gamestorming and the principles of domain-driven design (DDD). The technique isn't
limited to software development. You can apply it to practically any technical or business
domain, especially those that are large, complex, or both.
Event storming catalyzes and accelerates group learning, often achieving in a few hours or
days what more traditional modeling techniques never do—a common understanding of
the domain in which the software must operate.
To understand event storming you first need to understand two key terms. A domain event
is anything that happens that is of interest to a domain expert. The domain expert is not
interested in databases, web sockets, or design patterns, but in the business domain of the
things that must happen. Domain events capture those facts in a way that doesn't specify a
particular implementation.”

4
D o m a i n D r i v e n D e s i g n

Extreme Modeling

“Domain-Driven Design Extreme Modeling (D3X) is an advanced and intensive


technique that takes Domain-Driven Design (DDD) principles to the extreme. It aims
to push the boundaries of modeling and understanding complex domains by
leveraging collaborative, immersive, and iterative practices. D3X is a proactive
approach that seeks to uncover deep domain insights and drive the design of highly
effective software solutions.

D3X focuses on intense modeling sessions that involve domain experts,


development teams, and stakeholders. These sessions are typically time-boxed and
structured to encourage active participation, creativity, and knowledge sharing. The
goal is to create a rich and precise model of the domain, capturing its intricacies,
rules, and behavior in a holistic manner.”

5
D o m a i n D r i v e n D e s i g n

Key elements and practices of D3X

Immersive Collaboration: D3X fosters Visual Modeling Techniques: D3X Rapid Prototyping and Feedback: D3X
a high level of collaboration between utilizes visual modeling techniques to leverages rapid prototyping and
domain experts and development express the domain concepts, feedback loops to validate and refine
teams. By bringing stakeholders relationships, and behaviors. These the model. By quickly translating the
together in a focused and interactive techniques include event storming, domain model into working
environment, D3X promotes real- process modeling, behavior-driven prototypes or proofs of concept, the
time exchange of knowledge, ideas, development (BDD), and user story team can gather feedback from
and insights. This collaborative effort mapping. Visual models help stakeholders and iterate on the
helps bridge the gap between stakeholders and team members design. This iterative feedback loop
domain understanding and software better understand the domain, align helps uncover potential issues,
design, ensuring a shared vision of their mental models, and identify validate assumptions, and refine the
the solution potential areas of improvement. model further

Model Exploration: D3X encourages Ubiquitous Language Refinement: D3X


exploration and experimentation places a strong emphasis on refining and
through iterative modeling. It starts evolving the ubiquitous language—the
with a core domain model and shared language that bridges the gap
progressively refines and expands it between domain experts and development
based on evolving insights and teams. Through continuous collaboration,
requirements. By continuously the team refines the language, ensuring that
iterating and refining the model, D3X it accurately captures the nuances and
ensures that it accurately represents vocabulary of the domain. The ubiquitous
the complexities and nuances of the language becomes a powerful
domain. communication tool, enabling precise
discussions and reducing misunderstandings.
6
D o m a i n D r i v e n D e s i g n

Conclusion

“The D3X approach requires a high level of commitment, engagement, and


openness from all participants. It challenges traditional modeling practices by
promoting intense collaboration, visual modeling techniques, and iterative
refinement. By embracing D3X, teams can gain a deep understanding of complex
domains, leading to more accurate and effective software designs that closely align
with the business goals.”

7
Who else needs
some coffee ?
Domain Driven Design

8
• Mod_TR_019_R2_0118

Technical Training
Let’s do it

You might also like