Event Storming — A crucial step in Software Design

Mayur SSoni
3 min readFeb 27, 2022

To achieve Business Goal it is really important to understand the business Domain, Capabilities and how technology can contribute to achieve their strategic goal.

Why?

  • There was a major communication gap that happened to exists between Business and Engineering team — a common language. Business team does not understand design patterns, database, micro-service or any technical jargons. So, it’s important to communicate in a language that can be understood by everyone.
  • From Engineering perspective its very important to understand the Business Domain, Capabilities, relationship between these capabilities, actors, etc.

Here, comes Event Storming — this ensures that the business domain experts and technology experts arrive at a common understanding before constructing a system.

source: www.dreamstime.com

Let’s look at key components of Event Storming

Now since, we are familiar with what, why

let’s see how we can APPLY them…

Use Case

Business ABCLoan who is providing

Disclaimer — I am not a domain expert but I will try to add based on my knowledge

Goal — from Tech company perspective is to understand the business better and see how we as a tech company can contribute to achieve business goals.

1. Understand the domain and list out the sub-domains

2. For any one sub-domain, we will apply event storming

Domains and Sub-domains

We will do an Event Storming for Retail Loans Sub-domain

Steps1 — Customer apply for a loan

Steps2 — Bank will gather more data for a customer

Steps3 — Validation and Credit Evaluation

Steps4 — Risk Analysis (How much risk is involved in giving the loan)

Steps5 — Underwriting — Lender assess the borrower’s ability to repay loan bases on the inputs from above steps

Step6 — Approval and disbursement of loan

Event Storming Step 1

In this step people brainstorm and share what they know openly to the team. There will be certain process to refine and merge the events. The outcome would be Domain events.

Time Sequencing of Domain Events — Step 2

Events are sequenced in ascending order of time. Events happening parallel have been put vertically. This process will discover what happens before the event and after the event in the entire flow.

Identification of Triggers/Commands — Step 3

Commands can be initiated by actors, both internal and external to the system. This process will help you to get the broader context in the system in which it operates.

Aggregates — Step 4

This process will give you the capabilities within the system by grouping command, event, actors.

For e.g. in above diagram — Customer’s loan request+ Customer initial credit verification+ Documents collection can be combined as LoanAsses capability.

Validation and Risk assessment cab considered as Operate capability.

Initialising the underwriting process, collateral verification, loan processing can be part of Underwriting capability.

Summary

The entire process of event storming gives us the understanding of domain, actors of the domain and give us broader context of the system which can help us to understand the high level capabilities in the business application and segregate the micro-service.

References:

--

--