Event Storming

Event Storming is a Collaborative exercise, objective of which is to identify the Events, Producers & Consumers in a given scope, to create a shared understanding of the domain.

Event Storming is a facilitated workshop that assists in create a shared understanding of the cause and effect of domain events.

Focus is on gathering knowledge to create and disperse shared understanding of the domain

  • Objective is NOT to design the system
  • Objective is NOT to be able to answer all questions
  • Objective is NOT to produce DDD models

Workshop

Conducted by an experienced facilitator with prior experience with Event Storming

  • Decide on the scope
    • Domain level
    • Process level
      • OR somewhere in-between
  • Number of participants
    • 4 to 8 for process level
  • Duration depends on scope
    • Couple of hours/days
  • In person or online
    • In person : use stickies on wall
    • Online : use collab tools

Color coded stickies are used to represent the knowledge. when-this-happens

Process

All events are considered *Domain Events. Start by identifying a Domain Actor and their actions.

Look for statements like:

when-this-happens

Command

Represents the cause of the event. It is used by a domain Actor; it leads to an Event. Use a Blue sticky to represent a command.

  • Represents the intent of an actor
  • That MUST be carried out by the domain

when-this-happens

Command processor a.k.a. Aggregate

A Command Processor is an Aggregate that processes the command, and that leads to an Event. It is represented on a Yellow sticky. For example it could be a software system, manual process, etc

when-this-happens

Event

Event is represented on an Orange sticky. Name the event is always in Past tense.

event-naming

Policy a.k.a. Reaction a.k.a. Side effect

It is the reaction to the event. In other words it represents the effect. Policy is placed on a Purple sticky note.

when-this-happens

External sourcse

An external system can also be a source of event. Such events are represented on a Pink sticky note.

when-this-happens

Event data a.k.a. Query model

Event is directly or indirectly associated with state change . A Green sticky note is used to depict key information on the event that is of value to one or more stakeholders.

User interface

The Event data is projected on a user interface, that is depicted on a White sticky.

User Interface is sometimes not considered as part of Event Storming

when-this-happens

Relationships to keep in mind

Note: Inspired by Alberto Brandolini’s talk/book

when-this-happens

ACME travels workshop

This is an example from the case study used in the course.

when-this-happens

Benefits

  • Proven technique
  • Establishes common knowledge of domain
  • Identifies knowledge gaps
  • Accelerates development
  • Focussed