Decouvrir CQRS (sans Event sourcing) par la pratique
ThomasPierrain
2,045 views
50 slides
Oct 22, 2016
Slide 1 of 50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
About This Presentation
Introduction à CQRS présentée aux MS experiences 2016 (Palais des Congrès) par Thomas PIERRAIN, en compagnie de Bruno BOUCARD, Tomasz JASKULA et Eric VERNIE.
Size: 2.26 MB
Language: fr
Added: Oct 22, 2016
Slides: 50 pages
Slide Content
Thomas PIERRAIN
@tpierrain
Bruno BOUCARD
@brunoboucard
Tomasz JASKULA
@tjaskula
Eric VERNIE
@EricVernie
CQRS par
la pratique
PourquoiCQRS ?
Des problèmesde Scalabilité?
N°4
Loi de Pareto
80-20
Le coupable…
N°5
0%0%
80% de
lecture
20%
d’écriture
Des contraintes
très différentesà
gérer par le même
composant
central
donc
…
Enmêmetemps…
N°6
Tenez-en vous suffisamment compte
dans vos choix de design et
d’architecture ?
Question
(pour vous)
N°7
Comment optimiser une appli qui a
besoin de monter à l’échelle ?
Et alors
(d’aprèsvous…)
N°8
C’estlàoù
CQRS…
N°9
CQRS (version courte)
CQRS sépare les 80 et les 20
N°11
CQRS sépare les 80 et les 20
N°12
20 % du temps
80 % du temps
C
Q
R
S
Et au fait ?!?
( powered by Greg YOUNG -@gregyoung)
N°13
Command
Query
Responsibility
Segregation
Et au fait ?!?
N°14
Command
Query
Responsibility
Segregation
Et au fait ?!?
N°15
N°16
Le petit CQRS illustré
N°17
Le petit CQRS illustré
N°18
Le petit CQRS illustré
N°19
Le petit CQRS illustré
N°20
Le petit CQRS illustré
N°21
Le petit CQRS illustré
N°22
Le petit CQRS illustré
N°23
Le petit CQRS illustré
N°24
Le petit CQRS illustré
N°25
Le petit CQRS illustré
N°26
Le petit CQRS illustré
N°27
Le petit CQRS illustré
N°28
Le petit CQRS illustré
N°29
Le petit CQRS illustré
N°30
Le petit CQRS illustré
Le petit CQRS illustré
N°31
Bases de
données
relationnelles
(ACID)
Caches, modèles
dénormalisés,
«prêts à
«consommer»
(no SQL)
Command
DÉCLENCHE UNE ACTION
Modifie l’état du système
>> Ne retourne pas de donnée ! <<
Verbe a l’impératif
Ex: BookARoom
N°32
Query
RÉCUPÈRE UNE INFORMATION
Lecture-seule !
Retourne des données
Verbe a l’impératif
Ex: GetAvailableRooms
Event
A DÉJÀ EU LIEU
(Immutable)
Verbe au participe passé
Ex: RoomBooked
Démo
Implémentation Open Source disponible sur GitHub
Constitué de deux parties
CoreClr(Runtimed’exécution) (C++)
CoreFx(inclue les classes, collections, file systems, xmletc….) (C#)
Le Framework ASP.NET Core1.0s’appuie dessus
Déploiement classique ou
Containers (Linux ou Windows)
.NET Core
// Licensed to the .NET Foundation under one or more agreements.
N°37
Live coding
Pour conclure…
Attention !
N°42
…un pattern général d’architecture
Utilisez-le pour les composants soumis à rude épreuve (perf)
Et uniquement sur une sous-partie de votre plate-forme par exemple
CQRS cen’estpas…
N°43
Event Sourcing
Ce n’est pas non plus…
N°44
CQRS Event Sourcing
mais
CQRS != Event Sourcing
N°45
Doncvousl’aurezcompris…
N°46
… bien séparer son code de lecture et son code d’écriture
CQRS c’est surtout…
N°47
Queries
Caches, modèles
dénormalisés,
lecture-seule
Commands
Transactionnel
ACID
N°48
Merci aussi à Rui CARVALHO, Mendel MONTEIRO-BECKERMAN,
Olivier COANET etClément BOUDEREAU ainsi que Greg YOUNG
pour leurs feedbacks et idées pour ce talk.
Pour refaire le laba la
maison :
Suivez les instructions ici :
https://github.com/tpierrain/CQRS/blob/master/LabInstruc
tions.md