SlideShare a Scribd company logo
1 of 35
Download to read offline
Event Storming
PROCESS, STICKES & EVENTS
Francesco Garavaglia
01/2016
Agenda  The problem
 The solution: Event storming
 Summary
3
The Problem
The Problem
0
0,2
0,4
0,6
0,8
1
1,2
1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 9,00 10,00
Complexity
Time elapsed
Changing Cost
Green Field illusion
Maintainence
I cannot do this
Refactoring from
scratch
How to gather
requirements from
many different
departments/speci
alists?
4
Department C
Department E
Department A
Department D
Department B
Sequential data
gathering?
Time
6
Or design by committee?
The Problem
7
Event Storming
 Event Storming is a fun way of bringing developers and business experts together and drive your
analysis from the outside and quickly explore complex business domains in hours instead of
days/weeks.
Event Storming (or Model storming) is a way of
starting your analysis from the outside and quickly
explore complex business domains.
Invented by Alberto Brandolini
See
http://ziobrando.blogspot.dk/2013/11/introducing-
event-storming.html
The Problem
Much
requirements
gathering still
follow in the steps
of structural or
classic OO design
WE WRITE USE CASES/STORIES
AND AFTERWARDS LOOK
FOR NOUNS AND VERBS
8
9
Usually we start with a simple model
The Problem
10
And as time goes by…
The Problem
11
It gets more complicated
The Problem
12
And finally we drown
The Problem
We end up with
One Domain Model
to Rule them All
CAN’T WE AVOID
CEREMONIAL MODELING?
SOMETHING EASIER, FASTER
AND BETTER?
13
14
Event Storming
 All togher into the same room
 Unlimited modelling surface
 Invite the right People
 Those who bring the questions
 Those who know the answers (not all of them)
 Value is in the interaction between people: miss one and you’ll miss n-1 interactions
 Refine the model step-by-step
The Solution: ES
15
Hack the space
 There is no perfect room for a event storming
 Hacking the space is up to you
 Unlimited modelling space: can’t tell a problem size before exploring it
 Table creates the wrong phisical space
 position are fixed, no emerging alliances
 posture is far from optimal
 too easy to switch on laptops or other distractions
 No body language to observe
The Solution: ES
16
Needed stuff
The Solution: ES
17
How to run EventStorming session
 Explore the domain starting from Domain/Business
 Simple semantic and notation
 Represent the state transitions
 Gives us precision
 Easy to grasp by everybody in the room
 Place them along a timeline to visualize the process
 An event might be the predecessor or the follower of another one
The Solution: ES
18
An Event message is non-prescriptive of what should happen in other services. It leaves this open to the
recipients, so that they themselves determine what to do based on occurrence of the event.
Events always carry a name in its past-tense form: OrderWasAccepted, OrderHasShipped,
CustomerWasReimbursed
Other qualities
 Immutable, i.e. content cannot be changed
 Always carries the ID of the Business Object it relates to
 An event can and will typically will be published to multiple consumers.
 The publisher of the event does not know who the recipients are
 And it doesn’t know what the recipients intend to do with the event
“An Event describes something that HAS happened”
What is an Event?
The Solution: ES
19
 User Action model it as a Command
 External system
 Time
 Other Domain Events
 Documents
External
Time
Command Role
Event Event
Document
What does it cause Domain Events?
The Solution: ES
20
Define a language…
A physical model provides a safe
support for spotting critical areas in
your business process
It’s not like
that
The Solution: ES
21
..Along the time line
Enforce narratives: People like telling Stories, not just filling diagrams or template
 Encourage experts to tell a story
 Look for concrete examples
 look for edge cases, they fit perfectly in a narrative and they should fit into your model too
 Eventually turn them into tests
The Solution: ES
22
Or reverse narrative
 Use Time line in a reverse mode:
What was the
path that led us
here?
What needs to
happen before,
so that this event
can happen
too?
The Solution: ES
23
A Command message is prescriptive of what should happen. This is a stronger form of coupling than Event and Document
messages.
A Command’s primary goal is to capture USER INTENT
A Command supports a single usecase and targets a single Business Object
Commands always carry a name in its imperative form: CreateOrder, ShipOrder, CancelOrder, ReimburseCustomer, etc.
Other qualities
 Immutable, i.e. content cannot be changed
 Always carries the ID of the Business Object that it relates to
 A command can only be handled by ONE service
 The Operations that consume Commands don’t return values – but can throw exceptions
 Commands mutate Business Object state which results in one or more Events being published
“A command describes a Task that you want someone else to carry out for you and the recipient can
reject the Command”
Events are often the side effect of Commands
The Solution: ES
24
Commands & Events
Receives a
Command
Asynchronousl
y
Publishes multiple
Events
asynchronously
The Solution: ES
25
Entering the process manager
Process managers are the home of reactive behaviour in the systems «Whanaver» is the most
common word here
 Whenever we receive an
invoice we schedule a
payment
 Whenever we receive a Bs.we
try to reconcile it
Suppler
invoice
receiver
Bank
Statement
Received
Schedule
Payment
Reconcile
Operation
The Solution: ES
26
Using Business Events to drive Business Processes
Sales Service
Shipping
Billing
Sales
Customers
MessageChannel
Online Ordering System
Web Shop
(Composite UI)
Billing Service
Shipping Service
Order
Accepted
Event
AcceptOrde
r
Command
The sales
fulfillment
processing
can now
begin…
The Solution: ES
27
Not all the results are visible
 The model on the paper roll is huge and tangible but more value is created along the way
Event
Storming
More often than not, old
problems find a solution
during the workshop
The Solution: ES
28
Not all the results are visible
 Conflicts and potential overlappings are highlighted
 Can finally see the Big Picture
 Conversations can finally Happen
 And ideas are popping out
The Solution: ES
29
 Explore Aggregates Outside In
 An Aggregate receives Commands and decides to execute them or reject
them
 If the Aggregate executes a Command it will produce one or more Domain
Events as a result
Exploring…..
The Solution: ES
30
Invoice
InvoiceLine
*
Account *
What:
• Cluster coherent Entities and Value
Objects, with complex associations into
Aggregates with well defined boundaries.
• Choose one entity to be root and control
access to objects inside the boundary
through the root.
• External objects hold references to the
root
• Aggregates only refer to other aggregates
by identity (their id)
Motivation:
Control invariants and consistency through the aggregate root.
Enables: Loading schemes, coarse grained locking and…
Ensuring consistency & transactional boundaries for Distributed scenarios
Root
….Aggregates
The Solution: ES
31
 Explore Sub domains
 Different areas of responsibility map pretty well to different subdomains or
portions of the pork
 Explore Bounded Contexts
 During the discussion, some conflict areas with regards to different
interpretations of terms might emerge
 Draw boundaries between the multiple consistent models that will coexist in
your domain
31
… And sub-domains
The Solution: ES
32
Conceptual CQRS
Users decide actions
according to the real world
experience (things they know
which are not in the system)
and read Model
Humans decide according
to different sets of info (ex:
faces, pictures, surnames,
ecc)
The model of anything: CQRS
The Solution: ES
33
Summary: Event Storming
 Legend:
 User Action modeled as a Command
 External system
 Time
 Domain Events
 Documents
 IT Operations (Gateway)
 Aggregate
 Read Model
External
Time
Comma
nd
Role
Event Event
Docume
nt
IT Ops
Read
Model
Aggregate
Summary
34
Event Storming is
 Powerful
 come up with a comprehensive model of a complete business flow in hours instead of weeks.
 Engaging:
 bring people with the questions and people who know the answer in the same room and to build a
model together
 Efficient
 the resulting model is perfectly aligned with Event Sourcing and EDA, and allows for a quick
determination of Bounded Context and Aggregate boundaries and thereby also Service boundaries
 Easy
 the notation is ultra-simple. No complex UML
 Fun
 Eventstorming workshops and fun, people are energized and deliver more than they expected. The right
questions arise, and the atmosphere is the right one.
Summary
Thanks
FRANCESCO.GARAVAGLIA@GMAIL.COM

More Related Content

What's hot

20220607 Introduction to Flight Levels
20220607 Introduction to Flight Levels20220607 Introduction to Flight Levels
20220607 Introduction to Flight Levels
Craeg Strong
 

What's hot (20)

Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
Building Adaptive Systems with Wardley Mapping, Domain-Driven Design, and Tea...
 
Model storming
Model stormingModel storming
Model storming
 
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
Modern Professional Scrum using Flow and Kanban - Agile and Beyond Detroit 2019
 
Hacking Your Head : Managing Information Overload (extended)
Hacking Your Head : Managing Information Overload (extended)Hacking Your Head : Managing Information Overload (extended)
Hacking Your Head : Managing Information Overload (extended)
 
Scaled Agile Framework (SAFe) Roles and Meetings
Scaled Agile Framework (SAFe) Roles and MeetingsScaled Agile Framework (SAFe) Roles and Meetings
Scaled Agile Framework (SAFe) Roles and Meetings
 
The 5 Levels Planning in Agile
The 5 Levels Planning in AgileThe 5 Levels Planning in Agile
The 5 Levels Planning in Agile
 
Transactions redefined
Transactions redefinedTransactions redefined
Transactions redefined
 
A Product Manager's Place in a DevOps World
A Product Manager's Place in a DevOps WorldA Product Manager's Place in a DevOps World
A Product Manager's Place in a DevOps World
 
DevOps and Build Automation
DevOps and Build AutomationDevOps and Build Automation
DevOps and Build Automation
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
 
Extreme DDD modelling
Extreme DDD modellingExtreme DDD modelling
Extreme DDD modelling
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
 
From Use case to User Story
From Use case to User StoryFrom Use case to User Story
From Use case to User Story
 
SAFe SCRUMxp Overview
SAFe SCRUMxp OverviewSAFe SCRUMxp Overview
SAFe SCRUMxp Overview
 
Product Backlog Refinement
Product Backlog RefinementProduct Backlog Refinement
Product Backlog Refinement
 
Agile Fundamentals
Agile FundamentalsAgile Fundamentals
Agile Fundamentals
 
20220607 Introduction to Flight Levels
20220607 Introduction to Flight Levels20220607 Introduction to Flight Levels
20220607 Introduction to Flight Levels
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
Facilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exerciseFacilitating the Elephant carpaccio exercise
Facilitating the Elephant carpaccio exercise
 

Viewers also liked

ACT December 2015 - OM (2)
ACT December 2015 - OM (2)ACT December 2015 - OM (2)
ACT December 2015 - OM (2)
Mark Shanholtzer
 
Arthritis foods to avoid
Arthritis foods to avoidArthritis foods to avoid
Arthritis foods to avoid
brooke123
 
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
Sue Rosen RN CLNC
 
2015新年紀伊半島溫泉行
2015新年紀伊半島溫泉行2015新年紀伊半島溫泉行
2015新年紀伊半島溫泉行
Dave Chiu
 
Wheaton Science Products_overview
Wheaton Science Products_overviewWheaton Science Products_overview
Wheaton Science Products_overview
Ernie Desmarais
 
Are you paying attention?
Are you paying attention?Are you paying attention?
Are you paying attention?
arvindbalu
 

Viewers also liked (20)

Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStore
 
NCrafts Eventstorming workshop
NCrafts Eventstorming workshopNCrafts Eventstorming workshop
NCrafts Eventstorming workshop
 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
Indian Aluminium Extrusions Industry - Challenges & Oppourtunities
Indian Aluminium Extrusions Industry - Challenges & OppourtunitiesIndian Aluminium Extrusions Industry - Challenges & Oppourtunities
Indian Aluminium Extrusions Industry - Challenges & Oppourtunities
 
ACT December 2015 - OM (2)
ACT December 2015 - OM (2)ACT December 2015 - OM (2)
ACT December 2015 - OM (2)
 
Arthritis foods to avoid
Arthritis foods to avoidArthritis foods to avoid
Arthritis foods to avoid
 
BI-TORQ BDI 2012
BI-TORQ BDI 2012BI-TORQ BDI 2012
BI-TORQ BDI 2012
 
Linkedin 2013 Facts & Statistics
Linkedin 2013 Facts & StatisticsLinkedin 2013 Facts & Statistics
Linkedin 2013 Facts & Statistics
 
Magic book 2 pre unit pres
Magic book 2 pre unit  presMagic book 2 pre unit  pres
Magic book 2 pre unit pres
 
Team creo
Team creoTeam creo
Team creo
 
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
Cmar 36105-critical-appraisal-of-the-potential-use-of-cannabinoids-in-c 082913
 
Magic book unit 2 pres
Magic book unit 2 presMagic book unit 2 pres
Magic book unit 2 pres
 
2015新年紀伊半島溫泉行
2015新年紀伊半島溫泉行2015新年紀伊半島溫泉行
2015新年紀伊半島溫泉行
 
Dup 3d opportunity-productdesign
Dup 3d opportunity-productdesignDup 3d opportunity-productdesign
Dup 3d opportunity-productdesign
 
Wheaton Science Products_overview
Wheaton Science Products_overviewWheaton Science Products_overview
Wheaton Science Products_overview
 
November 13th
November 13thNovember 13th
November 13th
 
Are you paying attention?
Are you paying attention?Are you paying attention?
Are you paying attention?
 
Brandlink
BrandlinkBrandlink
Brandlink
 
FEO White Paper
FEO White PaperFEO White Paper
FEO White Paper
 

Similar to Work shop eventstorming

Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRSSeminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Mizanur Sarker
 
Design patterns 1july
Design patterns 1julyDesign patterns 1july
Design patterns 1july
Edureka!
 

Similar to Work shop eventstorming (20)

Event Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with LagomEvent Storming & Event Sourcing with Lagom
Event Storming & Event Sourcing with Lagom
 
Save Time, Money and Bloodshed with Soft System Discovery
Save Time, Money and Bloodshed with Soft System DiscoverySave Time, Money and Bloodshed with Soft System Discovery
Save Time, Money and Bloodshed with Soft System Discovery
 
Abstract
AbstractAbstract
Abstract
 
Webinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software DevelopmentWebinar: Design Patterns : Tailor-made solutions for Software Development
Webinar: Design Patterns : Tailor-made solutions for Software Development
 
Framing the Problem
Framing the ProblemFraming the Problem
Framing the Problem
 
From Use to User Interface
From Use     to User InterfaceFrom Use     to User Interface
From Use to User Interface
 
Design Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for SoftwareDesign Patterns - The Ultimate Blueprint for Software
Design Patterns - The Ultimate Blueprint for Software
 
Grokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineersGrokking Techtalk: Problem solving for sw engineers
Grokking Techtalk: Problem solving for sw engineers
 
The waterfall, a commonly misapprehended methodological concept
The waterfall, a commonly misapprehended methodological conceptThe waterfall, a commonly misapprehended methodological concept
The waterfall, a commonly misapprehended methodological concept
 
Managing Content Chaos
Managing Content ChaosManaging Content Chaos
Managing Content Chaos
 
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
Successfully Kickstarting Data Governance's Social Dynamics: Define, Collabor...
 
Changing the medium to challenge the message - A Conversational UI case study
Changing the medium to challenge the message - A Conversational UI case studyChanging the medium to challenge the message - A Conversational UI case study
Changing the medium to challenge the message - A Conversational UI case study
 
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRSSeminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
 
Implementing Event Sourcing in .NET
Implementing Event Sourcing in .NETImplementing Event Sourcing in .NET
Implementing Event Sourcing in .NET
 
Domain Driven Design @ NewStore
Domain Driven Design @ NewStoreDomain Driven Design @ NewStore
Domain Driven Design @ NewStore
 
Using Stories to Test Requirements and Systems
Using Stories to Test Requirements and SystemsUsing Stories to Test Requirements and Systems
Using Stories to Test Requirements and Systems
 
Design Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for SoftwareDesign Patterns : The Ultimate Blueprint for Software
Design Patterns : The Ultimate Blueprint for Software
 
Design patterns 1july
Design patterns 1julyDesign patterns 1july
Design patterns 1july
 
2b other processes
2b other processes2b other processes
2b other processes
 
2b other processes
2b other processes2b other processes
2b other processes
 

More from Francesco Garavaglia (7)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Entering the matrix
Entering the matrixEntering the matrix
Entering the matrix
 
Workshop - cqrs brief introduction
Workshop - cqrs brief introductionWorkshop - cqrs brief introduction
Workshop - cqrs brief introduction
 
CQRS recepies
CQRS recepiesCQRS recepies
CQRS recepies
 
IOC in Unity
IOC in Unity  IOC in Unity
IOC in Unity
 
IOC in unity
IOC in unityIOC in unity
IOC in unity
 
Workshop unit test
Workshop   unit testWorkshop   unit test
Workshop unit test
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Work shop eventstorming

  • 1. Event Storming PROCESS, STICKES & EVENTS Francesco Garavaglia 01/2016
  • 2. Agenda  The problem  The solution: Event storming  Summary
  • 3. 3 The Problem The Problem 0 0,2 0,4 0,6 0,8 1 1,2 1,00 2,00 3,00 4,00 5,00 6,00 7,00 8,00 9,00 10,00 Complexity Time elapsed Changing Cost Green Field illusion Maintainence I cannot do this Refactoring from scratch
  • 4. How to gather requirements from many different departments/speci alists? 4 Department C Department E Department A Department D Department B
  • 6. 6 Or design by committee? The Problem
  • 7. 7 Event Storming  Event Storming is a fun way of bringing developers and business experts together and drive your analysis from the outside and quickly explore complex business domains in hours instead of days/weeks. Event Storming (or Model storming) is a way of starting your analysis from the outside and quickly explore complex business domains. Invented by Alberto Brandolini See http://ziobrando.blogspot.dk/2013/11/introducing- event-storming.html The Problem
  • 8. Much requirements gathering still follow in the steps of structural or classic OO design WE WRITE USE CASES/STORIES AND AFTERWARDS LOOK FOR NOUNS AND VERBS 8
  • 9. 9 Usually we start with a simple model The Problem
  • 10. 10 And as time goes by… The Problem
  • 11. 11 It gets more complicated The Problem
  • 12. 12 And finally we drown The Problem
  • 13. We end up with One Domain Model to Rule them All CAN’T WE AVOID CEREMONIAL MODELING? SOMETHING EASIER, FASTER AND BETTER? 13
  • 14. 14 Event Storming  All togher into the same room  Unlimited modelling surface  Invite the right People  Those who bring the questions  Those who know the answers (not all of them)  Value is in the interaction between people: miss one and you’ll miss n-1 interactions  Refine the model step-by-step The Solution: ES
  • 15. 15 Hack the space  There is no perfect room for a event storming  Hacking the space is up to you  Unlimited modelling space: can’t tell a problem size before exploring it  Table creates the wrong phisical space  position are fixed, no emerging alliances  posture is far from optimal  too easy to switch on laptops or other distractions  No body language to observe The Solution: ES
  • 17. 17 How to run EventStorming session  Explore the domain starting from Domain/Business  Simple semantic and notation  Represent the state transitions  Gives us precision  Easy to grasp by everybody in the room  Place them along a timeline to visualize the process  An event might be the predecessor or the follower of another one The Solution: ES
  • 18. 18 An Event message is non-prescriptive of what should happen in other services. It leaves this open to the recipients, so that they themselves determine what to do based on occurrence of the event. Events always carry a name in its past-tense form: OrderWasAccepted, OrderHasShipped, CustomerWasReimbursed Other qualities  Immutable, i.e. content cannot be changed  Always carries the ID of the Business Object it relates to  An event can and will typically will be published to multiple consumers.  The publisher of the event does not know who the recipients are  And it doesn’t know what the recipients intend to do with the event “An Event describes something that HAS happened” What is an Event? The Solution: ES
  • 19. 19  User Action model it as a Command  External system  Time  Other Domain Events  Documents External Time Command Role Event Event Document What does it cause Domain Events? The Solution: ES
  • 20. 20 Define a language… A physical model provides a safe support for spotting critical areas in your business process It’s not like that The Solution: ES
  • 21. 21 ..Along the time line Enforce narratives: People like telling Stories, not just filling diagrams or template  Encourage experts to tell a story  Look for concrete examples  look for edge cases, they fit perfectly in a narrative and they should fit into your model too  Eventually turn them into tests The Solution: ES
  • 22. 22 Or reverse narrative  Use Time line in a reverse mode: What was the path that led us here? What needs to happen before, so that this event can happen too? The Solution: ES
  • 23. 23 A Command message is prescriptive of what should happen. This is a stronger form of coupling than Event and Document messages. A Command’s primary goal is to capture USER INTENT A Command supports a single usecase and targets a single Business Object Commands always carry a name in its imperative form: CreateOrder, ShipOrder, CancelOrder, ReimburseCustomer, etc. Other qualities  Immutable, i.e. content cannot be changed  Always carries the ID of the Business Object that it relates to  A command can only be handled by ONE service  The Operations that consume Commands don’t return values – but can throw exceptions  Commands mutate Business Object state which results in one or more Events being published “A command describes a Task that you want someone else to carry out for you and the recipient can reject the Command” Events are often the side effect of Commands The Solution: ES
  • 24. 24 Commands & Events Receives a Command Asynchronousl y Publishes multiple Events asynchronously The Solution: ES
  • 25. 25 Entering the process manager Process managers are the home of reactive behaviour in the systems «Whanaver» is the most common word here  Whenever we receive an invoice we schedule a payment  Whenever we receive a Bs.we try to reconcile it Suppler invoice receiver Bank Statement Received Schedule Payment Reconcile Operation The Solution: ES
  • 26. 26 Using Business Events to drive Business Processes Sales Service Shipping Billing Sales Customers MessageChannel Online Ordering System Web Shop (Composite UI) Billing Service Shipping Service Order Accepted Event AcceptOrde r Command The sales fulfillment processing can now begin… The Solution: ES
  • 27. 27 Not all the results are visible  The model on the paper roll is huge and tangible but more value is created along the way Event Storming More often than not, old problems find a solution during the workshop The Solution: ES
  • 28. 28 Not all the results are visible  Conflicts and potential overlappings are highlighted  Can finally see the Big Picture  Conversations can finally Happen  And ideas are popping out The Solution: ES
  • 29. 29  Explore Aggregates Outside In  An Aggregate receives Commands and decides to execute them or reject them  If the Aggregate executes a Command it will produce one or more Domain Events as a result Exploring….. The Solution: ES
  • 30. 30 Invoice InvoiceLine * Account * What: • Cluster coherent Entities and Value Objects, with complex associations into Aggregates with well defined boundaries. • Choose one entity to be root and control access to objects inside the boundary through the root. • External objects hold references to the root • Aggregates only refer to other aggregates by identity (their id) Motivation: Control invariants and consistency through the aggregate root. Enables: Loading schemes, coarse grained locking and… Ensuring consistency & transactional boundaries for Distributed scenarios Root ….Aggregates The Solution: ES
  • 31. 31  Explore Sub domains  Different areas of responsibility map pretty well to different subdomains or portions of the pork  Explore Bounded Contexts  During the discussion, some conflict areas with regards to different interpretations of terms might emerge  Draw boundaries between the multiple consistent models that will coexist in your domain 31 … And sub-domains The Solution: ES
  • 32. 32 Conceptual CQRS Users decide actions according to the real world experience (things they know which are not in the system) and read Model Humans decide according to different sets of info (ex: faces, pictures, surnames, ecc) The model of anything: CQRS The Solution: ES
  • 33. 33 Summary: Event Storming  Legend:  User Action modeled as a Command  External system  Time  Domain Events  Documents  IT Operations (Gateway)  Aggregate  Read Model External Time Comma nd Role Event Event Docume nt IT Ops Read Model Aggregate Summary
  • 34. 34 Event Storming is  Powerful  come up with a comprehensive model of a complete business flow in hours instead of weeks.  Engaging:  bring people with the questions and people who know the answer in the same room and to build a model together  Efficient  the resulting model is perfectly aligned with Event Sourcing and EDA, and allows for a quick determination of Bounded Context and Aggregate boundaries and thereby also Service boundaries  Easy  the notation is ultra-simple. No complex UML  Fun  Eventstorming workshops and fun, people are energized and deliver more than they expected. The right questions arise, and the atmosphere is the right one. Summary