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
JWTB - Begin EventSourcing With Lagom
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
80
Co(ol)routines - Javaforum Q1
olbpetersson
0
150
Coolroutines - non-blocking Kotlin
olbpetersson
0
100
Begin EventSourcing with Lagom - Javaforum Q4 2017
olbpetersson
0
88
Begin Event Sourcing with Lagom
olbpetersson
2
200
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 Education
See All in Education
現場最前線から教えるデータサイエンス1 -ITベンダーにおけるデータサイエンティスト-
hidetoshikawaguchi
0
110
「機械学習と因果推論」入門 ⑤ 因果効果推定の一般化
masakat0
0
120
0513
cbtlibrary
0
190
Data Physicalisation - Lecture 9 - Next Generation User Interfaces (4018166FNR)
signer
PRO
1
1.1k
「機械学習と因果推論」入門① 因果効果とは
masakat0
0
1.9k
[2026前期火5] 論理学(京都大学文学部 前期 第3回)「形式言語と四つのキーワード:メタ・構成・意味論・ハーモニー」
yatabe
0
560
解決策を教えても次期リーダーは育たない ─ 器の発達に伴走するために / Partnering with leaders in their vertical development
matsu0228
1
430
Estimating Group × Time Interaction in Scale-Transformed CEFR-J Self-Assessment Scores: A Case in Study-Abroad Research
uranoken
0
100
Stardy 会社紹介資料
stardy
0
1.2k
Case Studies - Lecture 12 - Information Visualisation (4019538FNR)
signer
PRO
0
150
[2026前期火5] 論理学(京都大学文学部 前期 第2回)「論理的な正しさはどこにあるのか」
yatabe
0
960
生成AI時代のエンジニア育成について考えてみた
akasan
0
150
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
610
So, you think you're a good person
axbom
PRO
2
2.1k
Abbi's Birthday
coloredviolet
3
8.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
430
Google's AI Overviews - The New Search
badams
0
1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
ラッコキーワード サービス紹介資料
rakko
1
3.7M
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
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