Event Storming

Crédits

  • Domain-Driven Design and Event-Driven Microservices. Matt Stine

Introduction

Event storming is a workshop-based method to quickly find out what is happening in the domain of a software program.

— Wikipedia

Participants

Data Scientist

👨🔬

Business Owner

👩💼

Designer

👨🎨

Developer

👩💻

Product Manager

🙆

Operator

👨🚒

Tester

🕵

Organisation

room setup

Online Tools

Domain Events

domain event
  • A published record of some business-significant event that has occurred.

  • Relevant for domain experts

  • Verb at past tense

Notation
  • Orange sticky note

Unstructured Exploration

unstructured exploration

Timeline Organisation

unstructured exploration

Hotspot

pain
  • A painful spot, bottleneck, or hotspot that occurs during the event timeline.

Notation
  • Dark purple sticky note, 45° turned

Hotspots/Pains Placement

everybody hurts

Command

command
  • A request on the behalf on an actor to initiate some business process.

Notation
  • Blue sticky note

Command Placement

  • Commands are placed before events

work backwards

Actor

actor
  • A user persona within the domain that requests a command to be executed.

Actors trigger Commands

whodunit

Policy

policy
  • A statement that when one or more specific Domain Events occur, something else should happen.

Notation
  • Purple sticky note

Policies

make it so

Read Model

read model
  • A view of the data captured within the domain that an Actor uses to gather information necessary to make a decision.

Notation
  • Green sticky note

Actors read the Model

decisions decisions

External System

external system
  • A system that exists outside of the modeled domain that collaborates with the domain being modeled.

Notation
  • Pink Rectangle Sticky

External Systems send Events

hello

Aggregate

aggregate
  • A transactionally-consistent group of entities that maintains business invariants. Commands are executed on Aggregates, and they publish Domain Events.

Notation
  • Yellow sticky note

Aggregate Placement

nouns

Bounded Contexts Definitions

hunting