Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
JWTB - Begin EventSourcing With Lagom
Search
Ola Petersson
April 17, 2018
Education
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JWTB - Begin EventSourcing With Lagom
Ola Petersson
April 17, 2018
More Decks by Ola Petersson
See All by Ola Petersson
NDC_Oslo__DevOps_in_Real_Life_-_A_How_To.pdf
olbpetersson
0
90
Co(ol)routines - Javaforum Q1
olbpetersson
0
160
Coolroutines - non-blocking Kotlin
olbpetersson
0
110
Begin EventSourcing with Lagom - Javaforum Q4 2017
olbpetersson
0
92
Begin Event Sourcing with Lagom
olbpetersson
2
200
JavaOne - Reactive Java EE
olbpetersson
0
160
JHipster - The best way to breed a new app
olbpetersson
0
870
Reactive Java EE
olbpetersson
0
360
Other Decks in Education
See All in Education
1014
cbtlibrary
0
170
CLASSIFICATION OF CRUDE DRUGS
pawan_pharm
0
220
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
430
Sekolah Sabat - Triwulan 3 2026 - Pelajaran 13
hiola
0
11k
Réunion des directrices et directeurs des écoles de la circonscription de Jonzac - 31 août 2026
fmarot
0
160
AIでアウトプットできる時代だからこそ、自分の言葉で考えることの大切さ / What's Left to Think, When AI Can Write?
masakiokuda
1
360
2026年度秋学期 統計学 第3回 クロス集計と感度・特異度,データの可視化 (2026. 10. 13)
akiraasano
PRO
0
260
中小規模私大の教学IRを支えるデータマネジメント ― データ基盤構築の取り組みと実務の現在地 ―
terazawa
0
230
Invest Early, Build Together
rashwhitman
0
750
人間のために、人間と共に働く時代の終わりの始まり
frievea
0
230
An Experiment in "Cross-Cultural Exchange" as a Method for Content Creation
naoji_taniguchi_ksk_0827
0
250
The Dirty Dozen: 12 gala mistakes you don’t know you’re making
auctria
PRO
0
140
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
The agentic SEO stack - context over prompts
schlessera
0
970
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Code Review Best Practice
trishagee
74
20k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
EVENT SOURCING WITH LAGOM
JAVA WITH THE BEST...And me! Ola Petersson @gotoOla
[email protected]
JUG
Gothenburg (JavaForum Göteborg)
.
ID.1 50
ID.1 51
ID.1 52
None
50 + 1 + 1 = 52
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
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
SILVERBULLET!
SILVERBULLET!
Axon framework Sebastian Daschner (youtube) Eventuate EventStore Alternatives
http://widr.se/slides
http://widr.se/code
• lagom - lagomframework.com/ • Akka - https://akka.io/ • reactive
microsystems - https://t.co/dm4wLJKV6f by Jonas Bonér • develop reactive microservices - https://www.lightbend.com/blog/developing-reactive-microservices-free -oreilly-mini-book-by-java-champion-markus-eisele by Markus Eisele • Event Sourcing - https://martinfowler.com/eaaDev/EventSourcing.html by Martin Fowler • Sebastian Daschner - EventSourcing and JavaEE tutorial https://www.youtube.com/watch?v=CYocFQvl6s0&list=PLEV9ul4qfGOZ5gWIPMl FGMUpenSs1EvxZ • Axon framework - http://www.axonframework.org/ • Eventuate - http://eventuate.io/ • EventStore - https://eventstore.org/
QUESTIONS?
http://widr.se/survey