Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Event Driven Development
Search
carnage
March 09, 2018
Technology
0
480
Event Driven Development
carnage
March 09, 2018
Tweet
Share
More Decks by carnage
See All by carnage
Object re-orientation
carnage
2
390
More Secrets of Cryptography
carnage
0
310
Nuclear powered software securty
carnage
0
320
Microservices vs The distributed monolith
carnage
1
2k
Passwords and how to handle them
carnage
0
260
A storm is brewing
carnage
0
74
The secrets of cryptography
carnage
0
130
The secrets of cryptography
carnage
0
130
You attended talk: An introduction to event sourcing (short)
carnage
0
470
Other Decks in Technology
See All in Technology
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
nihonbuson
4
750
任意コード実行の原理
ffri
0
190
Evolutionary Optimization of Model Merging Recipes
fuyu_quant0
3
560
ビジネスとコード品質の接合点 そしてコード品質がそこに及ぼす影響 / The Intersections of Business and Engineering, and The Impact of Code Quality There
mtx2s
11
1k
XRミーティング 2024-03-20
1ftseabass
PRO
0
100
大規模データとの戦い方
knih
1
480
オブジェクト指向宗教史
tanakahisateru
14
12k
Why do you get AWS certificates
hirosys
0
120
Getting started with controlling LEGO using Swift
hcrane
0
140
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
17
7.7k
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
7.2k
データマネジメントを支える武器としてのメタデータ管理
10xinc
2
950
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
160
13k
It's Worth the Effort
3n
180
27k
Designing Experiences People Love
moore
135
23k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
Gamification - CAS2011
davidbonilla
76
4.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Stop Working from a Prison Cell
hatefulcrawdad
265
19k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
The Mythical Team-Month
searls
214
42k
A Philosophy of Restraint
colly
195
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
15
6.3k
Practical Orchestrator
shlominoach
180
9.7k
Transcript
Event Driven Development Christopher Riley ConFoo 2018 1
Introduction
Introduction • Event sourcing 2
Introduction • Event sourcing • Event Driven Architecture 2
Introduction • Event sourcing • Event Driven Architecture • Task
Based UI 2
Introduction • Event sourcing • Event Driven Architecture • Task
Based UI • Event storming 2
What is an event? 2
What is an event? • Something which has happened in
the past 3
What is an event? • Something which has happened in
the past • Relevant to a domain expert 3
What is an event? • Something which has happened in
the past • Relevant to a domain expert • Not technical 3
What is an event? • Something which has happened in
the past • Relevant to a domain expert • Not technical • Raised in response to an input 3
Task based UI
A CRUD UI 4
A Task Based UI 5
Everything a company does is part of a process 5
Why are task based UI’s helpful to event based systems?
5
Event sourcing
A familiar model 6
Event sourcing example 7
What does an event sourced system actually look like? 7
Event sourcing architecture 8
Handling a command 9
Inside the model 10
Inside the model 11
Handling Events 12
Projections
Projections • Turn events into read models 13
Projections • Turn events into read models • Can be
eventually consistent 13
Projections • Turn events into read models • Can be
eventually consistent • Can be rebuilt 13
A projection 14
Process Managers
Process managers • Handle business logic around events 15
Process managers • Handle business logic around events • A
state machine 15
Process managers • Handle business logic around events • A
state machine • Keep track of failures 15
Process managers • Handle business logic around events • A
state machine • Keep track of failures • Be careful with replays 15
A Process Manager 16
Event Driven Architecture
Event Driven Architecture 17
Cross System Process 18
Conclusions
Thanks • @giveupalready • https://github.com/carnage • https://carnage.github.io 19