DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Ten Years of Beam: From Google's Dataflow Paper to 4 Trillion Events at LinkedIn
  • The Hidden Latency of Autoscaling
  • Evolving Spring Boot APIs to an Event-Driven Mesh
  • End-to-End Event Streaming With Kafka, Spring Boot and AWS SQS/SNS (Production-Ready Code Guide)

Trending

  • Why AI-Generated Code Breaks Your Testing Assumptions
  • Run Gemma 4 on Your Laptop: A Hands-On Guide to Google's Latest Open Multimodal LLM
  • S3 Vectors: How to Build a RAG Without a Vector Database
  • Introduction to Tactical DDD With Java: Steps to Build Semantic Code

Taming the Storm: How Chaotic Exploration Shapes Big Picture Event Storming

The article takes you inside a real Event Storming workshop — from chaos and debate to shared understanding of the Training Center domain.

By 
Sebastian Malaca user avatar
Sebastian Malaca
·
Oct. 17, 25 · Tutorial
Likes (1)
Comment
Save
Tweet
Share
1.4K Views

Join the DZone community and get the full member experience.

Join For Free

Having delved into the intricacies of event storming, its various types, and effective workshop facilitation, it’s now time to embark on our first practical example.

Initial requirements

Our customer requested that we implement a platform to support their training center. Although the list of requirements they provided was somewhat limited, it gave us a starting point for our work:

Trainings 

We reviewed trainings that were ready to be conducted, and those under preparation:

  1. Viewing trainings by those who are interested in participation
  2. Adding new and modifying existing trainings
  3. Each training needs to have its supervisorscould

Advertisement 

Activities were created to attract potential attendees to participate in a training, including:

  1. Webinars
  2. Talks on conferences
  3. Talks on internal events

Trainers

Trainers the Training Center works with explored the following:

  1. What trainings a given trainer could conduct
  2. What skills a trainer had
  3. Trainers' rates
  4. History of conducted trainings with received feedback
  5. Agreement between trainer and the Training Center

Open trainings

Training sessions anyone could join included:

  1. Trainings' harmonogram
  2. Payment
  3. Resignation
  4. Agreement with the Trainer who should conduct the training
  5. Group limits
  6. Cancellation

Dedicated trainings

Trainings organized for employees of other companies required some modifications, including:

  1. Training adjustments and modifications
  2. Conversations with the company's representative
  3. Non-Disclosure Agreement

This is far from the comprehensive requirements necessary for implementation. Nevertheless, armed with this initial information, we were able to propose the next steps. 

Fortunately, we’re already acquainted with a tool that can deepen our understanding of the business domain: Big Picture Event Storming.

The workshop's preparation

In our conversations with the client, we'd emphasized the importance of gaining a deeper understanding of their business domain. This knowledge was essential for exploring requirements in subsequent steps and making initial architectural decisions.

We identified four key individuals to engage: Monika, Sebastian, Iza, and Marek. These domain experts held the answers we sought. Additionally, we recognized the need for a group of questioners. As a result, we invited architects, team leads, and business analysts who would play crucial roles in the software development implementation.

Our plan involved three 1.5-hour sessions scheduled for a single day. This timeframe would allow for breaks, lunch, and flexibility to accommodate any additional sessions if necessary.

The day has come

Everyone settled into the room, colorful sticky notes were ready to be filled with information, and a lengthy blank wall was cleared for our work. And, of course, snacks and drinks were on hand to ensure that hunger or thirst wouldn’t hinder our progress.

I invited everyone to introduce themselves, and then we dove into the main event: the Big Picture Event Storming.

Explaining the legend

Before we delved into exploring the domain, I introduced the primary tool we’d be using: sticky notes. As I mentioned in a previous article, I recommended building our legend incrementally. We focused on three essential types:

Three sticky note types used in legend building.

Three sticky note types used in legend building.

  • Event represents anything that takes place or happens
  • Hot Spot serves as a marker for issues, questions, concerns, or areas needing attention
  • Opportunity represents an idea that could introduce beneficial enhancements or simplifications

I invited the group to create a few examples together to ensure everyone understood the purpose of each sticky note type. In a quick collaborative session, we generated examples for events, hot spots, and opportunities:

Examples of the sticky note types in action.

Examples of the sticky note types in action.

Excellent! It appeared we now shared a common understanding of our foundational building blocks.

Chaotic Exploration - Events Discovery

Now, I explained the purpose of our next step: to generate as many events as possible within our business domain. This was the only moment when we worked individually, which allowed everyone to focus solely on sharing the knowledge from their minds without getting bogged down in discussions or details. 

I invited everyone to find free space on the wall for their sticky notes, then stand next to the wall, and share as much information as they could.

After 20 minutes, everyone was done, and this was the picture they’d collectively produced:

The results of our initial discovery session.

The results of our initial discovery session.


Chaotic Exploration - Building Common Understanding

I invited everyone to examine what we’d created so far—each person had contributed their own understanding of the business domain. While it wasn't exhaustive, it provided a solid foundation for moving forward. With diverse perspectives represented on the wall, it was time to synthesize this information into a shared understanding and knowledge.

We systematically reviewed each sticky note to ensure:

  • The information was clear
  • The wording was accurate
  • There were no duplicates

In some cases, spotting duplicates was straightforward because we used identical phrases on the sticky notes:

Reviewing and de-duplicating Events.

Reviewing and de-duplicating Events.

However, when we encountered the sticky notes labeled “Training Created” (placed by both Marek and Sebastian) and “Training Defined” (added by Izabela), the situation was less straightforward than before. 

Initially, we assumed that these two sticky notes represented distinct concepts—after all, “creating” something isn’t necessarily the same as “defining” it. However, Izabela challenged this assumption and requested examples for both training creation and training definition.

Upon closer examination, it became evident that these events essentially conveyed the same idea. Consequently, we opted to retain the label “Training Defined,” as it better aligned with the vocabulary commonly used.

Clarification before combining Events was critical.

Clarification before combining Events was critical.

An intriguing discussion arose when we encountered the "Invoice Received" events. Before categorizing them as duplicates, I asked the authors, Monika and Sebastian, to share a few words about their sticky notes. It became clear that Monika was referring to invoices for trainers' services, while Sebastian had in mind the costs for hotels and transportation. After deliberation, we concluded that both names were accurate, and no modifications were necessary.

We ran a few examples to illustrate how the process around these events might unfold. Surprisingly, despite the lack of differences, most of the group felt uneasy about not highlighting the discussed nuances. Given that this conversation had already consumed several minutes of our time and that other events still awaited discussion, I proposed that we park this conversation and document our concerns on the sticky note designated for Hot Spots.

Knowing what and when to move conversations to Hot Spots was critical to keeping things moving.

Interestingly, during our discussions, we didn't just remove sticky notes; we also added some! As we clarified terminology and explored quick examples, we stumbled upon new information.

Clarifying terminology often uncovered new Events, Opportunities, and Hot Spots.

Clarifying terminology often uncovered new Events, Opportunities, and Hot Spots.

From Chaos to Clarity 

Let’s step back and take another look at the wall:

The wall may have been chaotic, but meaning was evolving.

The wall may have been chaotic, but meaning was evolving.

These were all the pieces of information that remained after our conversations. Was it still chaotic? Absolutely. However, the brief discussions we had during the first session served as a solid foundation for the common understanding and vocabulary we were beginning to define!

That was a well-spent 1.5 hours of our time. Then it was time for a short break—to catch up on important emails, grab a bite to eat, and recharge. 

Until next time! 

You can find the requirements, a link to the Event Storming session, and all previous articles in the Training Center repository on GitHub. 

Event

Published at DZone with permission of Sebastian Malaca. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Ten Years of Beam: From Google's Dataflow Paper to 4 Trillion Events at LinkedIn
  • The Hidden Latency of Autoscaling
  • Evolving Spring Boot APIs to an Event-Driven Mesh
  • End-to-End Event Streaming With Kafka, Spring Boot and AWS SQS/SNS (Production-Ready Code Guide)

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook