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
540
Event Driven Development
carnage
March 09, 2018
Tweet
Share
More Decks by carnage
See All by carnage
Object re-orientation
carnage
2
490
More Secrets of Cryptography
carnage
0
390
Nuclear powered software securty
carnage
0
420
Microservices vs The distributed monolith
carnage
1
2.3k
Passwords and how to handle them
carnage
0
370
A storm is brewing
carnage
0
96
The secrets of cryptography
carnage
0
170
The secrets of cryptography
carnage
0
160
You attended talk: An introduction to event sourcing (short)
carnage
0
640
Other Decks in Technology
See All in Technology
PostgreSQL 18 cancel request key長の変更とRailsへの関連
yahonda
0
110
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
1.8k
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
220
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
1
240
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
590
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
実践! AIエージェント導入記
1mono2prod
0
150
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
900
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
400
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
4
1.1k
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
310
Agentic DevOps時代の生存戦略
kkamegawa
1
1.1k
Featured
See All Featured
Navigating Team Friction
lara
187
15k
Code Review Best Practice
trishagee
68
18k
YesSQL, Process and Tooling at Scale
rocio
173
14k
How GitHub (no longer) Works
holman
314
140k
Faster Mobile Websites
deanohume
307
31k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Building Applications with DynamoDB
mza
95
6.5k
Designing Experiences People Love
moore
142
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Raft: Consensus for Rubyists
vanstee
140
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