How To Use Event Storming  in Domain-Driven Design

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.

No alt text provided for this image

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

No alt text provided for this image

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

No alt text provided for this image

2.??????Add commands

No alt text provided for this image

3.??????Add entities

No alt text provided for this image

4.??????Add external systems and domain constraints

No alt text provided for this image

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


Luis Romero

Senior Advisor | Technology Strategy & Transformation at Salesforce

1 年

Clear and concise, thank you

Mahmoud SeyedKarimi

Software Programmer at ACECR

1 年

Very Good explain of Event Storming .....

Philippe Bourgeon

Systems Coach (ORSC, LCP/CLA, Co-Active)

2 年

Very interesting article, thank you Mohamed Hassan!

要查看或添加评论,请登录

社区洞察

其他会员也浏览了