Soumettre la recherche
Mettre en ligne
CQRS & Event Sourcing
•
4 j'aime
•
735 vues
Matthias Noback
Suivre
Workshop slides (https://training.matthiasnoback.nl/)
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 30
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Unidirectional Data Flow with Reactor
Unidirectional Data Flow with Reactor
Jason Larsen
Advanced Application Architecture (workshop slides)
Advanced Application Architecture (workshop slides)
Matthias Noback
Дерево рішень
Дерево рішень
Соловьёва Наталья
Fortune 500: Top 10 Retailers
Fortune 500: Top 10 Retailers
Kenny Slaught
Dos
Dos
Aneli111075
Scopus y cinhal
Scopus y cinhal
Laura Montes Piña
Georgia birds field guide
Georgia birds field guide
UWG
Ponencia loja energia agro eco
Ponencia loja energia agro eco
Margorie Astudillo
Recommandé
Unidirectional Data Flow with Reactor
Unidirectional Data Flow with Reactor
Jason Larsen
Advanced Application Architecture (workshop slides)
Advanced Application Architecture (workshop slides)
Matthias Noback
Дерево рішень
Дерево рішень
Соловьёва Наталья
Fortune 500: Top 10 Retailers
Fortune 500: Top 10 Retailers
Kenny Slaught
Dos
Dos
Aneli111075
Scopus y cinhal
Scopus y cinhal
Laura Montes Piña
Georgia birds field guide
Georgia birds field guide
UWG
Ponencia loja energia agro eco
Ponencia loja energia agro eco
Margorie Astudillo
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Kanaidi ken
Actividad 1 perfiles
Actividad 1 perfiles
Carlos Garcia
Informe final
Informe final
maecelosanca
Actividad 2
Actividad 2
Rodolfo Devia Devia
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
Alberto Stretti
Renderizado 3D
Renderizado 3D
Natalia Gómez
Desplazamiento de nodos método energético y maxwell mohr
Desplazamiento de nodos método energético y maxwell mohr
Jlm Udal
Presetacion de power point 97 2003
Presetacion de power point 97 2003
Lismari Martinez
Ejercicio de hipertexto
Ejercicio de hipertexto
luisaruiz2202
1°trabajo flores antezana rogger david
1°trabajo flores antezana rogger david
ROGGER DAVID FLORES ANTEZANA
2017 3C diario di Hans
2017 3C diario di Hans
ONELAB SIRMIONE
Rector fireside chat - PHPMiNDS meetup
Rector fireside chat - PHPMiNDS meetup
Matthias Noback
Service abstractions - Part 1: Queries
Service abstractions - Part 1: Queries
Matthias Noback
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Matthias Noback
Advanced web application architecture - PHP Barcelona
Advanced web application architecture - PHP Barcelona
Matthias Noback
A testing strategy for hexagonal applications
A testing strategy for hexagonal applications
Matthias Noback
Advanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
Matthias Noback
Layers, ports and adapters
Layers, ports and adapters
Matthias Noback
Beyond design principles and patterns (muCon 2019 edition)
Beyond design principles and patterns (muCon 2019 edition)
Matthias Noback
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Matthias Noback
Advanced web application architecture Way2Web
Advanced web application architecture Way2Web
Matthias Noback
Contenu connexe
En vedette
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Kanaidi ken
Actividad 1 perfiles
Actividad 1 perfiles
Carlos Garcia
Informe final
Informe final
maecelosanca
Actividad 2
Actividad 2
Rodolfo Devia Devia
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
Alberto Stretti
Renderizado 3D
Renderizado 3D
Natalia Gómez
Desplazamiento de nodos método energético y maxwell mohr
Desplazamiento de nodos método energético y maxwell mohr
Jlm Udal
Presetacion de power point 97 2003
Presetacion de power point 97 2003
Lismari Martinez
Ejercicio de hipertexto
Ejercicio de hipertexto
luisaruiz2202
1°trabajo flores antezana rogger david
1°trabajo flores antezana rogger david
ROGGER DAVID FLORES ANTEZANA
2017 3C diario di Hans
2017 3C diario di Hans
ONELAB SIRMIONE
En vedette
(11)
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Keterkaitan Organization Development (OD) dengan Arah Strategis Perusahaan
Actividad 1 perfiles
Actividad 1 perfiles
Informe final
Informe final
Actividad 2
Actividad 2
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
IAAF WorldCrossCountry champs Kampala(uga) 2017 final entry lists
Renderizado 3D
Renderizado 3D
Desplazamiento de nodos método energético y maxwell mohr
Desplazamiento de nodos método energético y maxwell mohr
Presetacion de power point 97 2003
Presetacion de power point 97 2003
Ejercicio de hipertexto
Ejercicio de hipertexto
1°trabajo flores antezana rogger david
1°trabajo flores antezana rogger david
2017 3C diario di Hans
2017 3C diario di Hans
Plus de Matthias Noback
Rector fireside chat - PHPMiNDS meetup
Rector fireside chat - PHPMiNDS meetup
Matthias Noback
Service abstractions - Part 1: Queries
Service abstractions - Part 1: Queries
Matthias Noback
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Matthias Noback
Advanced web application architecture - PHP Barcelona
Advanced web application architecture - PHP Barcelona
Matthias Noback
A testing strategy for hexagonal applications
A testing strategy for hexagonal applications
Matthias Noback
Advanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
Matthias Noback
Layers, ports and adapters
Layers, ports and adapters
Matthias Noback
Beyond design principles and patterns (muCon 2019 edition)
Beyond design principles and patterns (muCon 2019 edition)
Matthias Noback
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Matthias Noback
Advanced web application architecture Way2Web
Advanced web application architecture Way2Web
Matthias Noback
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Matthias Noback
Beyond Design Principles and Patterns
Beyond Design Principles and Patterns
Matthias Noback
Building Autonomous Services
Building Autonomous Services
Matthias Noback
Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018
Matthias Noback
Designing for Autonomy
Designing for Autonomy
Matthias Noback
Docker workshop
Docker workshop
Matthias Noback
Docker swarm workshop
Docker swarm workshop
Matthias Noback
Docker compose workshop
Docker compose workshop
Matthias Noback
Building autonomous services
Building autonomous services
Matthias Noback
Plus de Matthias Noback
(20)
Rector fireside chat - PHPMiNDS meetup
Rector fireside chat - PHPMiNDS meetup
Service abstractions - Part 1: Queries
Service abstractions - Part 1: Queries
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Advanced web application architecture - PHP Barcelona
Advanced web application architecture - PHP Barcelona
A testing strategy for hexagonal applications
A testing strategy for hexagonal applications
Advanced web application architecture - Talk
Advanced web application architecture - Talk
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
DPC 2019, Amsterdam: Beyond design patterns and principles - writing good OO ...
Layers, ports and adapters
Layers, ports and adapters
Beyond design principles and patterns (muCon 2019 edition)
Beyond design principles and patterns (muCon 2019 edition)
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Advanced web application architecture Way2Web
Advanced web application architecture Way2Web
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Brutal refactoring, lying code, the Churn, and other emotional stories from L...
Beyond Design Principles and Patterns
Beyond Design Principles and Patterns
Building Autonomous Services
Building Autonomous Services
Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018
Designing for Autonomy
Designing for Autonomy
Docker workshop
Docker workshop
Docker swarm workshop
Docker swarm workshop
Docker compose workshop
Docker compose workshop
Building autonomous services
Building autonomous services
Dernier
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
qr0udbr0
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
OnePlan Solutions
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Hanief Utama
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Philip Schwarz
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
Sujith Sukumaran
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Alina Yurenko
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Mater
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Cizo Technology Services
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Natan Silnitsky
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Ahmed Mohamed
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
Akihiro Suda
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Christian Birchler
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
FerryKemperman
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
vyaparkranti
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
motivationalword821
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
Christoph Pohl
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Technogeeks
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
YashikaSharma391629
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
ABSYZ Inc
Dernier
(20)
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
CQRS & Event Sourcing
1.
CQRS & EVENT SOURCING I -
Event sourcing
2.
TRADITIONAL PERSISTENCE Store only
the current state
3.
TRADITIONAL PERSISTENCE Store only
the current state
4.
TRADITIONAL PERSISTENCE Snapshots
5.
EVENT SOURCING Store the
events that have led to every state 1. Created 2. Updated foo 3. Updated bar 4. Deleted
6.
EVENT SOURCING Benefits Natural audit
log Ability to reconstruct a previous state Ability to respond to bugs in state
7.
COMMAND-QUERY SEPARATION Command function/method Produces
state change Has observable side-effects Either succeeds or fails Has a "void" return type Throws exceptions
8.
COMMAND Produces a state
change and emits an event Store only the events Reproduce the state using the events
9.
RECONSTITUTION Append new events event event event event command
10.
EVENTS Type (class) Object identifier Timestamp Any
relevant data (Playhead)
11.
assignments/01.md Event sourcing the
`Meetup` aggregate
12.
CQRS & EVENT SOURCING II -
CQRS
13.
EVENT SOURCING Slow on
the "read" side We need to: 1. Fetch and recreate all event objects 2. Reconstitute the object based on its events
14.
CQRS Helps with scaling
on the read side
15.
COMMAND-QUERY SEPARATION Query method Has
no observable side-effects Either succeeds or fails Has a specific return type Throws exceptions
16.
COMMAND/QUERY SEPARATION PRINCIPLE (CQS) Every method
should be either a command method, or a query method command(): void query(): type
17.
COMMAND/QUERY RESPONSIBILITY SEGREGATION (CQRS) Domain objects
should have either command methods, or query methods query(): typecommand(): void
18.
WE WANT TO
PERSIST EVENTS But we need the current state too
19.
IF ONLY WE
COULD Tail the event log... event event event
20.
PROJECTIONS Using events to
update read models event
21.
READ MODELS Are query
objects query(): type query(): type query(): type
22.
READ MODELS Are use-case
specific
23.
READ MODELS Are easy
to query SELECT * FROM ... WHERE ...
24.
READ MODELS Can use
polyglot persistence
25.
assignments/02.md Apply CQRS to
the `Meetup` aggregate
26.
assignments/03.md Twitsup: Unfollowing
27.
assignments/04.md Twitsup: Mentions
28.
assignments/05.md Twitsup: Mentions
29.
CQRS & EVENT SOURCING III -
Potential
30.
CQRS & ES Very
useful for Business insights Scaling Application integration Microservices
Télécharger maintenant