DDD - Event Storming
[#vaughn-ddddis] suggests Event Storming as good way to build a 202105192149 DDD - Ubiquitous Language. It is something that happens into a workshop format and can take several sessions (the author suggests 3/4 sessions of approx. 4 hours).
For the workshop you should have:
- Sticky notes of several color (so you can use it for visual taxonomy)
- A black sharpie with fine point
- A wide surface (preferably a wall)
It goes like this:
- Brainstorm 202106091344 DDD - Domain Events
- Organize them in chronological order
- Add the commands that cause the events right before each event (i.e:
SendMessage
would be the command forMessageSent
) - Add the 202106010818 DDD - Aggregates or 202106010842 DDD - Entities that are related to the command between the command and the event. Sort of like "the command acts on this thing, which triggers that event"
- Zoom out and draw lines to group what you generated in step 4 into 202105192148 DDD - Bounded Contexts and 202105200840 DDD - Subdomains
- Describe the views (as in an interface) that your user will need to act upon these domains discovered by you
This note is clearly a refresher, I strongly recommend myself (and others) to go back to the book whenever they want to conduct the workshop, there is a lot of insight that is not capture here (nor it should, since it's operational).
[#vaughn-ddddis]: Vernon, Vaughn. Domain-Driven Design Distilled. Boston: Addison-Wesley, 2016.