Viklund Random thoughts


estorm: Event Storming boards as plain text

Event Storming workshops are great. What comes after them usually isn’t: a few photos of a wall full of stickies that nobody looks at again, and that go stale the moment the model changes.

estorm is my attempt at fixing that. You write the flow as plain text and get a board of stickies, rendered as SVG:

== Sales ==
Customer: Place order -> (Order) -> OrderPlaced
  after 30 minutes unless PaymentCaptured
    then Cancel unpaid order -> (Order) -> OrderCancelled

== Payments ==
when OrderPlaced
  then Charge card -> [Payment provider] -> PaymentCaptured
  ! What if the charge succeeds but our callback times out?

Actors, commands, aggregates, external systems, policies, read models and hotspots each have a short notation, and bounded contexts become swimlanes.

It’s not meant to replace the workshop itself. Run that with paper or a whiteboard, then capture the result in text. The board lives in the repository next to the code, changes go through review, and the diffs are readable.

There are a few ways to use it:

The source is on GitHub.