Event storming: events, commands, aggregates.

The workshop laid out along a timeline — domain events first, then what triggers them, what owns them and where it hurts.

lantern coffee · order ahead · the wall
COMMANDPlace order
COMMANDAuthorise payment
POLICYWhen paid, print a ticket
COMMANDMark ready
COMMANDHand over
DOMAIN EVENTOrder placed
DOMAIN EVENTPayment authorised
DOMAIN EVENTTicket printed
DOMAIN EVENTDrink ready
DOMAIN EVENTOrder picked up
AGGREGATEOrder
EXTERNAL SYSTEMPayments provider
EXTERNAL SYSTEMSoHo till
READ MODELPickup shelf
HOTSPOTPay before or at pickup?

The whole room on one wall, in order.

Event storming works because the wall is wide and the order is visible. A room argues about what happens and in which sequence, and the disagreements show up as two events claiming the same moment — that is where the hotspot goes.

Read more: Working together →

lantern coffee · order ahead · 8:14 to 8:16
DOMAIN EVENTTicket printed
HOTSPOTTwo events at 8:15 — which comes first?
DOMAIN EVENTDrink ready
DOMAIN EVENTName called
DOMAIN EVENTOrder picked up

An aggregate opens its own board.

Order carries a green dot: under it is the board where its life is worked out on its own — every event that changes it, from placed to picked up, and the command that causes each one. The wall stays readable, and the detail has a place to go.

Read more: Boards that open boards →

the wall
AGGREGATEOrder
the wall › order · lifecycle
COMMANDPlace order
COMMANDAuthorise payment
COMMANDMark ready
COMMANDHand over
DOMAIN EVENTOrder placed
DOMAIN EVENTPayment authorised
DOMAIN EVENTDrink ready
DOMAIN EVENTOrder picked up
PlacedPaidReadyPicked up

The colours are types, so the wall reads back.

A domain event is an object of its own type, and so is a command, a policy or an aggregate. After the workshop the wall is read back from the project page — what the aggregates were, which policy reacted to which event — instead of being photographed and retyped somewhere else.

Read more: One object, many boards →

lantern coffee · objects · by type
TYPEOBJECTSON THE WALL
Domain Event6Order placed, Payment authorised, Ticket printed, Drink ready…
Command5Place order, Authorise payment, Mark ready, Hand over…
Policy1When paid, print a ticket
Aggregate1Order
External System2Payments provider, SoHo till
Read Model1Pickup shelf
Hotspot2Pay before or at pickup? · Two events at 8:15

Every figure, named.

The toolbar's own names — what you pick is what this list says: two groups, 16 figures.

Event Storming10

Around the wall6