Event storming

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
An example process from an event storming

Event storming is a workshop-based method to quickly find out what is happening in the domain of a software program.[1] Compared to other methods it is extremely lightweight and intentionally requires no support by a computer. The result is expressed in sticky notes on a wide wall. The business process is "stormed out" as a series of domain events which are denoted as orange stickies. It was invented by Alberto Brandolini in the context of domain-driven design (DDD). Event storming can be used as a means for business process modeling and requirements engineering. The basic idea is to bring together software developers and domain experts and learn from each other. To make this learning process easier, event storming is meant to be fun.[2][3] The name was chosen to show that the focus should be on the domain events and the method works similar to brainstorming or agile modeling's model storming.

Requirements[edit]

It is important for an event storming workshop to have the right people present. This includes people who know the questions to ask (typically developers) and those who know the answers (domain experts, product owners).[1]

The modelling will be placed on a wide wall with a big part of a paper roll on it. On this paper the sticky notes will be put. The stickies will be required in different colors.[3]

Steps[edit]

Event storming legend of notes by their conceptual name with their associated colors and how they are laid out in relation to each other.
Step 1: Create domain events
Step 2: Add the commands that caused the domain event
Step 2b: Add the actor that executes the command
Step 3: Add corresponding aggregate

The first step is to find the domain events and write them on orange sticky notes. When all domain events are found the second step is to find for each domain event the command that caused it. Commands are written on blue notes and placed directly before the corresponding domain event. In the third step the aggregates are identified on which the commands are executed and to which happen the domain events. The aggregates are written in yellow stickies.

  Domain event
  Issues
  Business process
  Command
  Aggregate
  External system
  View

Result[edit]

As a result, the business process can be seen on the modeling space. But more important is the knowledge that was built in the minds of the participants.

Terminology[edit]

Aggregate
Cluster of domain objects that can be treated as a single unit.
Business process
Processes a command according to business rules and logic. Creates one or more domain events.
Command
A command executed by a user through a view on an aggregate that results in the creation of a domain event.
Domain event
An event that occurs in the business process. Written in past tense.
External system
A third-party service provider such as a payment gateway or shipping company.
User
A person who executes a command through a view.
View
A view that users interact with to carry out a task in the system.

References[edit]

  1. ^ a b Brandolini, Alberto (2013-11-18). "Introducing Event Storming". Retrieved 2017-04-06.
  2. ^ Brandolini, Alberto (c. 2017). Introducing Event Storming. Leanpub. Retrieved April 6, 2017.
  3. ^ a b Vernon, Vaughn (2016). Domain-Driven Design Distilled. Addison-Wesley. ISBN 978-0134434421.