Event Storming is something I did not mention in my book on CEP. In fact it did not exist when I wrote “The Power of Events”. So, what is Event Storming?
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. 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.
Imagine your company or organization decides that it needs to get into Real Time Event processing to maintain its competitive edge in whatever market or activity forms your business. You have noticed that you have loads of events arriving at headquarters from all manner of sources, both inside and outside the company, such as shipping and receiving, sales outlets, marketing, customer orders, suppliers, partners and competitors, etc.
The first question you will probably ask is “which of these incoming event sources do we need to monitor?” Is it practical to monitor all of them? Are some events more important than others? How do you decide these kinds of questions?
Well, that’s where “Event Storming” might be something you would resort to. It is a kind of group exercise in decision making. The aficionados describe it as “a workshop format for quickly exploring complex business domains“. It is really a social process by which company personnel get together and try to come up with an answer to the kinds of questions posed above.
So you’re going to hold a “workshop”. Here are the basic steps in setting up your Event Storming workshop according to an expert in this kind of activity:
- Invite the right people to the workshop. Ideally you’ll want a large meeting room with around 10 – 12 people, with the right mixture of the ones who know the questions to ask (and which are curious to listen to the answer) and the ones who know the answers.
- Provide unlimited modeling space. Too often complex problems are not properly analyzed because there’s not enough space available to see the problem. Your problem is bigger than your whiteboard, so what? Try to hack the modeling space using whatever is available; one suggestion is an Ikea paper roll) to get rid of the space limitation.
- Explore the domain starting from Domain Events. A Domain Event is something meaningful happened in your business. It must be the kind of event that is quickly grasped by non-technical people. An event might be the predecessor of, or the follower of, another one. So the events you will be dealing with will have relationships like cause and timing. So be prepared to model the relationships as well as the events. Represent events and their time lines on your modeling surface using various colored stickies (orange for time lines).
- Explore the origin of Domain Events. Some events are the direct consequence of a user action. These are called Command events and are represented by using a blue sticky note. Others are the consequence of something happening in external systems or of the time passing. In Storming you use different colored sticky notes for events, events they caused, and the causal relationship.
- Look for Aggregates. Aggregates are events that result from lots of other events. You will eventually find yourself trying to define an event hierarchy for the important business activities in your company, starting from the domain events.
You’ll need this kind of stuff:
- a suitable room, quiet and large enough to contain the modeling surface (if the weather permits, outdoor modeling might be an option too, but the wind might be a major blocker);
- a writable surface, most likely an Ikea paper roll (codename Måla, you can find it in the kids’ area).
- a LOT of sticky notes, in different flavors (the basic set is pale yellow rectangular stickies, plus orange, blue, and purple squared ones);
- working markers, ideally one per participants plus backup;
- some masking tape, just in case;
- the right people.
- a facilitator.
Event Storming takes off from there. I will hand you over to the experts in Event Storming for more on how to do it, including photographs of their white boards with colored stickies. You can then decide if there is anything useful in the idea.
In my own experience whenever we were setting up a new event monitoring system it was always obvious which events we wanted to monitor. – DCL