How To Use Event Storming in Domain-Driven Design
Collaborative mindset
DDD was built mainly on the collaboration between business users (mainly domain experts ) and the development team.
This collaboration requires a simple way for system design away from any UML complication and Event Storming is one of the effective ways to gather domain business requirements in a collaborative way.
The reason behind event storming is to quickly find out what is happening in the domain of a software program. Compared to other methods it is extremely lightweight and intentionally requires no support from a computer. The result is expressed in sticky notes on a wide wall.
Event Storming Work Shops Planning
·????????Plan for workshop sessions by involving domain experts, business analysts, product owners, and the programming team.
·????????Schedule enough time for the Workshop time normally 2 hours for the session.
·????????Assign facilitator for the workshop to give a brief about how to create effective event storming and explain notations quickly.
·????????Make the environment ready by having a wide whiteboard, enough sticky notes with required colors.
·????????In physical workshops encourage people to stand up instead of sitting this will help them to reflect domain complexity on the whiteboards.
·????????In remote workshops use helpful software to give the attendees the ability to collaborate and reflect their collaboration in Realtime to others, actually miro.com is the best tool I found to do this task.
Color Meaning
·????????Orange sticky notes to represent domain events
·????????Blue sticky notes to represent commands
·????????Yellow sticky notes to represent aggregates/entities
·????????Pink sticky notes to represent External Systems
·????????Green sticky notes to represent Inquiry or ready model?
·????????Orange sticky notes to represent domain events
·????????Red sticky notes to represent questions or things that you will come to it again but don’t’ want to stop the flow.
·????????yellow sticky with person symbol notes to represent Actores.
How To Make
1.??????Select the user story or EPIC
2.??????Start the timeline from left to right
领英推荐
3.??????Stick notes as in these steps
a.??????Step 1 add all sequences of user story events to the whiteboard
The sentence must have subject and predicate, and the predicate needs to be in the past tense.
b.??????Step 2 Beside each domain event adds a blue stick for the command to generate this event.
c.??????Step 2b Beside each domain event adds a stick to represent who is the actor to do this command.
d.??????Step 3 Beside each domain event adds a yellow stick for the entity or aggregate affected by this event
Example
Let’s say we want to create event storming for this story
“As Buyer, I want to add the products to the shopping cart, so I can purchase the items online.”
1.??????List domain events
2.??????Add commands
3.??????Add entities
4.??????Add external systems and domain constraints
Summary
In the previous example, this is not the final result to reflect the user story as event storming but it can be considered as a good point that can be tuned in coming workshops by involving more collaboration and more discussions.
now most of building blocks for the domain layer become identified and now we are ready to build the domain layer.
goodbye and meet soon in next article that talks about domain layer in details.
to check my earlier article on DDD fundamentals, kindly check this article
Senior Advisor | Technology Strategy & Transformation at Salesforce
1 年Clear and concise, thank you
Software Programmer at ACECR
1 年Very Good explain of Event Storming .....
Systems Coach (ORSC, LCP/CLA, Co-Active)
2 年Very interesting article, thank you Mohamed Hassan!