Event Driven DevelopmentChristopher RileyConFoo 20181
View Slide
Introduction
Introduction• Event sourcing2
Introduction• Event sourcing• Event Driven Architecture2
Introduction• Event sourcing• Event Driven Architecture• Task Based UI2
Introduction• Event sourcing• Event Driven Architecture• Task Based UI• Event storming2
What is an event?2
What is an event?• Something which has happened in the past3
What is an event?• Something which has happened in the past• Relevant to a domain expert3
What is an event?• Something which has happened in the past• Relevant to a domain expert• Not technical3
What is an event?• Something which has happened in the past• Relevant to a domain expert• Not technical• Raised in response to an input3
Task based UI
A CRUD UI4
A Task Based UI5
Everything a company does is part of aprocess5
Why are task based UI’s helpful to eventbased systems?5
Event sourcing
A familiar model6
Event sourcing example7
What does an event sourced system actuallylook like?7
Event sourcing architecture8
Handling a command9
Inside the model10
Inside the model11
Handling Events12
Projections
Projections• Turn events into read models13
Projections• Turn events into read models• Can be eventually consistent13
Projections• Turn events into read models• Can be eventually consistent• Can be rebuilt13
A projection14
Process Managers
Process managers• Handle business logic around events15
Process managers• Handle business logic around events• A state machine15
Process managers• Handle business logic around events• A state machine• Keep track of failures15
Process managers• Handle business logic around events• A state machine• Keep track of failures• Be careful with replays15
A Process Manager16
Event Driven Architecture
Event Driven Architecture17
Cross System Process18
Conclusions
Thanks• @giveupalready• https://github.com/carnage• https://carnage.github.io19