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
Begin Event Sourcing with Lagom
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ola Petersson
October 23, 2017
Programming
200
2
Share
Begin Event Sourcing with Lagom
Ola Petersson
October 23, 2017
More Decks by Ola Petersson
See All by Ola Petersson
NDC_Oslo__DevOps_in_Real_Life_-_A_How_To.pdf
olbpetersson
0
77
Co(ol)routines - Javaforum Q1
olbpetersson
0
150
Coolroutines - non-blocking Kotlin
olbpetersson
0
99
JWTB - Begin EventSourcing With Lagom
olbpetersson
0
110
Begin EventSourcing with Lagom - Javaforum Q4 2017
olbpetersson
0
83
JavaOne - Reactive Java EE
olbpetersson
0
150
JHipster - The best way to breed a new app
olbpetersson
0
850
Reactive Java EE
olbpetersson
0
360
Other Decks in Programming
See All in Programming
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
3
1.3k
今さら聞けないCancellationToken
htkym
0
210
初めてのRubyKaigiはこう見えた
jellyfish700
0
410
Swiftのレキシカルスコープ管理
kntkymt
0
210
さぁV100、メモリをお食べ・・・
nilpe
0
130
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
230
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
2k
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
680
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
1.8k
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
160
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
140
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
280
A designer walks into a library…
pauljervisheath
211
24k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
The Language of Interfaces
destraynor
162
27k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Navigating Team Friction
lara
192
16k
Google's AI Overviews - The New Search
badams
0
1k
The agentic SEO stack - context over prompts
schlessera
0
790
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Building an army of robots
kneath
306
46k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Transcript
EVENT SOURCING WITH LAGOM
ME A few words about Ola Petersson @gotoOla
[email protected]
JUG
Gothenburg (JavaForum Göteborg)
ID.1 50
ID.1 51
ID.1 52
None
50 + 1 + 1 = 52
COMMANDS EVENTS aggregates
COMMANDS EVENTS aggregates
COMMANDS EVENTS aggregates
CMD
CMD EVENT
CMD EVENT OLD
CMD EVENT OLD NEW
EVENT
{ food: [], drinks: [] } commands Events AGGREGATE
{ addBurger } { food: [], drinks: [] } commands
Events AGGREGATE
{ addBurger } { food: [], drinks: [] } {
burgerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [] } {
burgerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [] } {
addBeer } { burgerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [] } {
addBeer } { burgerAdded } { beerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [beer] } {
addBeer } { burgerAdded } { beerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [beer] } {
addSalad } { addBeer } { burgerAdded } { beerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger], drinks: [beer] } {
addSalad } { addBeer } { burgerAdded } { saladAdded } { beerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger, salad ], drinks: [beer]
} { addSalad } { addBeer } { burgerAdded } { saladAdded } { beerAdded } commands Events AGGREGATE
{ addBurger } { food: [burger, salad ], drinks: [beer,
water] } { addSalad } { addBeer } { addWater } { burgerAdded } { saladAdded } { beerAdded } { waterAdded } commands Events AGGREGATE
.
None
akka
None
CHANGE HISTORY AUDIT LOG SPEED TIME TRAVEL
CHANGE HISTORY AUDIT LOG SPEED TIME TRAVEL
CHANGE HISTORY AUDIT LOG SPEED TIME TRAVEL
CHANGE HISTORY AUDIT LOG SPEED TIME TRAVEL
event storming
READ?
CQRS WRITE READ
EVENTUAL CONSISTENCY … a necessary evil
MICROSERVICES
QUESTIONS?