SlideShare a Scribd company logo
1 of 289
Download to read offline
@cyrdup @tpierrain#ReactFin
Basses latences, hauts débits : les secrets de
la finance pour avoir des systèmes réactifs
Cyrille DUPUYDAUBY
Thomas PIERRAIN
!
SOCIETE GENERALE
@cyrdup @tpierrain#ReactFin
Qui sommes nous ?
use case driven (blog) Many Cores (blog)
@cyrdup @tpierrain#ReactFin
Agenda
•Banque d’investissement & marchés électroniques
•Construisons ensemble un « Pricer »
•Reactive Manifesto & Conclusion
@cyrdup @tpierrain#ReactFin
La banque d'investissement
•Fournir des solutions de
financement
•Proposer des solutions
d'investissements
•Créer des produits financiers
•Agir sur les marchés
http://upload.wikimedia.org/wikipedia/commons/b/b8/Sao_Paulo_Stock_Exchange.jpg
@cyrdup @tpierrain#ReactFin
Les activités de marché
@cyrdup @tpierrain#ReactFin
Les activités de marché
@cyrdup @tpierrain#ReactFin
Les activités de marché
@cyrdup @tpierrain#ReactFin
Les activités de marché
Carnet d’ordres
Carnet d’ordres
Prix
Carnet d’ordres
Prix
Carnet d’ordres
Prix
Moteur
Carnet d’ordres
Prix
Moteur
Carnet d’ordres
Prix
Moteur
@YourTwitterHandle#DVXFR14{session hashtag} @cyrdup @tpierrain#ReactFin
PAS
COM
PRIS?
@cyrdup @tpierrain#ReactFin
Le supermarché
@cyrdup @tpierrain#ReactFin
Le supermarché
@cyrdup @tpierrain#ReactFin
Les acteurs
Investisseurs
@cyrdup @tpierrain#ReactFin
Les acteurs
Investisseurs
Market Makers
@cyrdup @tpierrain#ReactFin
Les acteurs
Investisseurs
Market Makers
Scalpers
@cyrdup @tpierrain#ReactFin
Les automates
Algo trading
@cyrdup @tpierrain#ReactFin
Les automates
Algo trading
Arbitrage
@cyrdup @tpierrain#ReactFin
Les enjeux
•Complexité
!
•Fiabilité/disponibilité
!
•Capacité en volume
!
•Latence
!
!
@cyrdup @tpierrain#ReactFin
Les enjeux
•Complexité
•5200 Releases/an
•Fiabilité/disponibilité
•5,5 * 24
•Capacité en volume
•5M executions/jour, 250K market update/Sec
•Latence
•≈ 5 ms end to end, 50 µsec pour haute fréquence
@cyrdup @tpierrain#ReactFin
Agenda
•Banque d’investissement & marchés électroniques
•Construisons ensemble un « Pricer »
•Reactive Manifesto & Conclusion
Le Pasta Pricer
@cyrdup @tpierrain#ReactFin
Mission
•Calculer en temps réel le prix des paquets de pâtes
proposées
•Offre en pates:
•4 tailles de paquet: 250g, 500g, 1Kg, 2Kg
•4 types de farine: basique, premium, bio, complète
•3 recettes: sans oeufs, avec et riche en oeuf
•50 formes et couleurs différentes

soit 2400 types de pates !
@cyrdup @tpierrain#ReactFin
Calculer le prix
•Le prix dépend des cours
•des différents types de blés
•des oeufs (le cas échéant)
•du carton et/ou du plastique (emballage)
•d’autres ingrédients optionnels (pates colorées): tomate
épinards
@cyrdup @tpierrain#ReactFin
Designons notre Pasta pricer!
en mode 

¨EVENT STORMING¨
@cyrdup @tpierrain#ReactFin
Bases pour notre représentation
Pasta pricer
dans la même boite...
@cyrdup @tpierrain#ReactFin
Bases pour notre représentation
Pasta pricer
des flux d evenementson 

reçoit ..
on 

publie ..
dans la même boite...
@cyrdup @tpierrain#ReactFin
Bases pour notre représentation
Pasta pricer
3 étapes
Calculerdecoder encoder
@cyrdup @tpierrain#ReactFin
Pasta pricer
3 étapes
Calc Encdec
Bases pour notre représentation
@cyrdup @tpierrain#ReactFin
Pasta pricer
3 étapes
Calc Encdecinputs
Bases pour notre représentation
@cyrdup @tpierrain#ReactFin
Pasta pricer
3 étapes
Calc Encdecinputs outputs
Bases pour notre représentation
@cyrdup @tpierrain#ReactFin
Pasta pricer
3 étapes
Calc Encdecinputs outputs
pennepennepenne
pennepennepennepenne
gnocchi
pennepennepenne
pennepennepennepenne
penne
2400 pates différentes
Bases pour notre représentation
@cyrdup @tpierrain#ReactFin
Designons notre Pasta pricer!
on commence?
@cyrdup @tpierrain#ReactFin
Approche mono thread
Calc Encdec
Pasta pricer
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
111001
0101...
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Oeufs
1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Oeufs
1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Oeufs
1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Approche mono thread
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Oeufs
1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Gnocchi
5.4 €
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Gnocchi
5.4 €
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
011001
01100
…
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
011001
01100
…
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
Oeufs
1.5 €
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
penne
2.1 €
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
penne
2.1 €
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
011001
01100
…
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
011001
01100
…
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs
1.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
nepen
ne
pen
ne
pen
ne
—- — pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs
1.5 €
pen
ne
——— —
——
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
Approche mono thread
01100
10110
0…
@cyrdup @tpierrain#ReactFin
Oeufs
1.5 €
Calc Encdec
Pasta pricer
pen
ne
pen
ne
pen
ne
—-
— ——
Approche mono thread
01100
10110
0…
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs
1.5 €
pen
ne
pen
ne
——-
Approche mono thread
01100
10110
0…
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Approche mono thread
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
————
—
@cyrdup @tpierrain#ReactFin
avis sur la solution?
Approche mono thread
@cyrdup @tpierrain#ReactFin
avis sur la solution?
-On n exploite pas la CPU au mieux
-prix des dernières pâtes calculées en retard
-le mono-thread: intéressant pour la ultra low
latency - pas ici avec nos contraintes
-le moment de // nos calculs !
Approche mono thread
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
111001
0101...
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
oeufs
3.5 €
oeufs
3.5 €
oeufs
3.5 €
oeufs
3.5 €
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
oeufs
3.5 €
oeufs
3.5 €
oeufs
3.5 €
oeufs
3.5 €
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
penne
5.4 €
....
.... €
......
8.2 €
....
€
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
penne
5.4 €
....
.... €
......
8.2 €
....
€
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
1110
1001
011
1110
0...
111101
.
.....
....
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
pen
ne
———
——
—-
—
—-
—
—-
—
———
——
gno
cchi
1110
1001
011
1110
0...
111101
.
.....
....
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
—-
—
—-
—
—-
—
———
——
gno
cchi
1110
1001
011
1110
0...
111101
.
.....
....
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
—-
—
—-
—
———
——
gno
cchi
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
1110
0...
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
1110
1001
011
111101
.
.....
....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
111101
.
.....
....—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
111101
.
.....
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—-
—
—-
—
—-
—
———
——
gno
cchi
—-
—
pen
ne
———
——
@cyrdup @tpierrain#ReactFin
Avis?
Approche 1 worker thread / pate
@cyrdup @tpierrain#ReactFin
Avis?
-2400 threads ... Ca va pas la tête ?!?
-context switches de malade
-modèle pas scalable... ni raisonnable
-il faut // d accord- mais plus finement
-approche suivante !
Approche 1 worker thread / pate
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Approche « pool de threads »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
111001
0101...
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs
bios
3.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs
bios
3.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
penne
bio
Oeufs
bios
3.5 €
Oeufs
bios
3.5 €
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
penne
bio
Gnocchi
bio
5.4 €
penne
bio
3.2 €
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
penne
bio
Gnocchi
bio
5.4 €
penne
bio
3.2 €
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
penne
bio
011000
11010
…
111110
00110
…
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
penne
bio
011000
11010
…
111110
00110
…
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
011000
11010
…
111110
00110
…
Approche « pool de thread »
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
011000
11010
…
111110
00110
…
Approche « pool de thread »
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
011000
11010
…
111110
00110
…
Approche « pool de thread »
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
011000
11010
…
Approche « pool de thread »
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
Approche « pool de thread »
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
c est mieux, non?
Approche « pool de threads »
@cyrdup @tpierrain#ReactFin
race conditions ?!?
Approche « pool de threads »
@cyrdup @tpierrain#ReactFin
Pasta pricer:
concentrons nous sur les gnocchis !
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
111001
0101...
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs
bios
3.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs
bios
3.5 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
000111
0010 ...
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
carton
+1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
carton
+1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
gnocchi
bio
carton
+1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
gnocchi
bio
Gnocchi
bio
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Oeufs
bios
3.5 €
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
gnocchi
bio
Gnocchi
bio
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
gnocchi
bio
Gnocchi
bio
5.4 €
Gnocchi
bio
4.4 € !!!
!!!
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
gnocchi
bio
Gnocchi
bio
4.4 €
011001
01100
… 5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
Gnocchi
bio
4.4 €
011001
01100
…
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
gnocchi
bio
Pool de thread et race conditions…
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
... ..
..
011001
01100
…
110001
0111 …
5.4 €
4.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
Pool de thread et race conditions…
011001
01100
…
110001
0111 …
5.4 €
4.4 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
Pool de thread et race conditions…
011001
01100
…
110001
0111 …
5.4 €
4.4 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
dernier prix pour
les gnocchis: 4.4 € !!!
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pen
ne
pen
ne
pen
ne
pen
ne
.... ... pen
ne
pen
ne
pen
ne
pen
ne
.. ....
Pool de thread et race conditions…
110001
0111 …
4.4 €
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
pen
ne
Gno
cchi
dernier prix pour
les gnocchis: 4.4 € !!!
@cyrdup @tpierrain#ReactFin
Probleme:
-le dernier prix publié pour les gnocchis

ne tient pas compte de la dernières 

info reçue
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Probleme:
-le dernier prix publié pour les gnocchis

ne tient pas compte de la dernières 

info reçue
solution:
-Il faut que les prix soient publiés en
respectant l ordre des inputs reçus
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
respecter l ordre OK, 

mais comment?
Approche Multi tasks / thread pool
@cyrdup @tpierrain#ReactFin
respecter l ordre OK, 

mais comment?
Approche Multi tasks / thread pool
avec des
locks?
@cyrdup @tpierrain#ReactFin
les vieux maitres en
multithreading ont un dicton :
¨qui dit lock ...
Approche Multi tasks / thread pool
@cyrdup @tpierrain#ReactFin
les vieux maitres en
multithreading ont un dicton :
¨qui dit lock ...
Approche Multi tasks / thread pool
... dit deadlock¨
@cyrdup @tpierrain#ReactFin
1. Protéger l acces à nos ressources
(pates  dans un monde // et asynchrone

2. pas de deadlock - donc pas de lock ni de
wait sans timeout dans le code du pricer

3. pas d expertise de dingue obligatoire en
multithreading
en resume, on veut:
Approche Multi tasks / thread pool
@cyrdup @tpierrain#ReactFin
On veut rendre la
programmation reactive
accessible à tous et sans
danger
En réalité si on résume encore +
@cyrdup @tpierrain#ReactFin
Notre solution:
Programmation reactive pour tous !
@cyrdup @tpierrain#ReactFin
Notre solution:
Programmation reactive pour tous !
¨Le sequencer¨
@cyrdup @tpierrain#ReactFin
¨Le sequencer¨
- un pattern qui garantit l ordre d execution des
tâches associées à un ¨état¨ donné

ex: un stream de prix, une négociation, un workflow, etc.
!
- Maintient la cohérence de cet état dans un
environnement complètement asynchrone et //
Programmation reactive pour tous !
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
8
9
!
1
2
1
2
3
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
8
9
!
1
2
1
2
3
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
8
9
!
1
2
1
2
3
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
8
9
!
1
2
1
2
3
@cyrdup @tpierrain#ReactFin
Programmation reactive pour tous !
¨Le sequencer¨
8
9
!
1
2
1
2
3
@cyrdup @tpierrain#ReactFin
Le sequencer en post-it
Sequencer
gnocchi
gnocchi
classe qui
agrège un
sequencer
@cyrdup @tpierrain#ReactFin
Le sequencer en post-it
Sequencer
gnocchi
gnocchi
classe qui
agrège un
sequencer
le sequencer
a qui on confie des
tâches a
¨sequencer¨
@cyrdup @tpierrain#ReactFin
Le sequencer en post-it
Sequencer
gnocchi
gnocchi
classe qui
agrège un
sequencer
le sequencer
a qui on confie des
tâches a
¨sequencer¨
interface Sequencer{
void dispatch(Task task);
}
programmation
asynchrone
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
111001
0101...
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Sequ
gnocchi
gnocchi
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Sequ
gnocchi
gnocchi
011011
0101…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011011
0101…
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Gnocchi
5.4 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Gnocchi
5.4 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
farine
0.5 €
Sequ
gnocchi
gnocchi
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
farine
0.5 €
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
011001
01100
…
farine
0.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
GNOCCHI
6.1 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
GNOCCHI
6.1 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Le sequencer en action
on REFAIT LE MATCH ?
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
111001
0101...
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Sequ
gnocchi
gnocchi
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
1.5 €
Sequ
gnocchi
gnocchi
011011
0101…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011011
0101…
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Oeufs
1.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Gnocchi
5.4 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
Gnocchi
5.4 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine
0.5 €
Sequ
gnocchi
gnocchi
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
farine
0.5 €
Sequ
gnocchi
gnocchi
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
farine
0.5 €
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
011001
01100
…
farine
0.5 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
GNOCCHI
6.1 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
GNOCCHI
6.1 €
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
gnocchi
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
011001
01100
…
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Le sequencer en action
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchi
SEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
@cyrdup @tpierrain#ReactFin
Et sous le capot du sequencer ?
@cyrdup @tpierrain#ReactFin
l’implémentation elle,
utilise des locks ou des CAS
(Compare and Swap) en
interne
« Complexité » encapsulée
@cyrdup @tpierrain#ReactFin
Pour un usage d’une simplicité …
!
interface Sequencer{
void dispatch(Task task);
}
@cyrdup @tpierrain#ReactFin
Autres avantages du Sequencer…
simplicité
lisibilité
fiabilité
non bloquant
!
en revanche ...
!
il va nous manquer un autre outil ...
@cyrdup @tpierrain#ReactFin
Un autre outil ?!?
¨et oui ...
@cyrdup @tpierrain#ReactFin
Un autre outil ?!?
¨et oui ...
de l eau qui
dort, se méfier
il faut ¨
@cyrdup @tpierrain#ReactFin
Le problème des pics de charge
Comment les
absorber sans
prendre de la
latence?
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
epinard
gnocchi
epinard
épinard
1.5 €
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
Sequ
rotini
epinard
rotini
epinard
épinard
1.5 €
Sequ
pici
epinard
Pici
epinard
épinard
1.5 €
système déjà chargé
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
111001
0101...
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
100100
101...
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
farine
bio
1.1 €
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
100100
101...
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
oeufs
bios
2.2 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
011110
0101...
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
100100
101...
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
blé bios
0.2 € . .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
blé bios
0.2 € . .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
011110
0101...
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
0110010
1100…
0110010
1100…
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
0110010
1100…
0110010
1100…
0110010
1100…
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
Oeufs
bios
3.5 €
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
Oeufs
bios
3.5 €
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
Oeufs
bios
3.5 €
!!!
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €
!!!
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
Gno
cchiSEQ
farf
alleSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
Gno
cchiSEQ
pen
ne
Oeufs
bios
3.5 €
OEUFS
BIOS
1.7 €
blé bios
0.2 €
farine
bio
1.1 €
oeufs
bios
2.2 €farine
bio
1.1 €
prix plus frais !!!
!!! vieux prix
@cyrdup @tpierrain#ReactFin
comment dépenser sa
CPU a bon escient ?
En cas de pic de charge…
@cyrdup @tpierrain#ReactFin
comment dépenser sa
CPU a bon escient ?
En cas de pic de charge…
la conflation
@cyrdup @tpierrain#ReactFin
¨ C est le moyen d amortir les pics de charge
quand le système est déjà bien occupé ¨
La conflation
@cyrdup @tpierrain#ReactFin
le Balking
Le dernier message sur le même sujet vient
remplacer le précédent. ¨Annule et remplace¨
2 types de conflation:
Oeufs
bios
3.5 €
Oeufs
bios
4.1 €
Oeufs
bios
4.1 €
t1 t0 t2
@cyrdup @tpierrain#ReactFin
le Balking
Le dernier message sur le même sujet vient
remplacer le précédent. ¨Annule et remplace¨
2 types de conflation:
le merge
le dernier message sur le même sujet vient fusionner
son contenu avec le précédent
Oeufs
bios
3.5 €
Oeufs
bios
4.1 €
Oeufs
bios
4.1 €
t1 t0 t2
Oeufs
bios
5kg:
20 €
Oeufs
bios
1kg:
5 €
Oeufs bios
1 kg: 5 €
5 kg: 20 €
t0t1 t2
@cyrdup @tpierrain#ReactFin
La conflation n est
pas de
l échantillonage !
A ne pas confondre avec…
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ
gnocchi
epinard
gnocchi
epinard
épinard
1.5 €
Même pic de charge avec conflation
Sequ
rotini
epinard
rotini
epinard
épinard
1.5 €
Sequ
pici
epinard
Pici
epinard
épinard
1.5 €
système déjà chargé
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
111001
0101...
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
100100
101...
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
farine
bio
1.1 €
Oeufs
bios
3.5 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
100100
101...
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
oeufs
bios
2.2 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.9 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
011110
0101... farine
bio
1.1 €Oeufs
bios
3.9 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €
farine
bio
1.1 €Oeufs
bios
3.9 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
100100
101... farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
blé bios
0.2 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
blé bios
0.2 €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
farine
bio
1.1 €Oeufs
bios
3.5 €
Même pic de charge avec conflation
011110
0101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…OEUFS
BIOS
1.7 €
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
.. .. ..
.
.. .. €
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110010
1100…
. .. ..
.. .. ..
.. .. ..
.
.. .. ..
.. .. ..
.. . . .
. ..
0110010
1100…
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110010
1100…
0110010
1100…
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110010
1100…
0110010
1100…
0110010
1100…
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
bios
1.7 €
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs
bios
1.7 €
Même pic de charge avec conflation
blé bios
0.2 €
farine
bio
1.1 €
prix frais ;-/
engorgement limité
@cyrdup @tpierrain#ReactFin
Back pressure obligatoire !
¨la conflation
ne s exerce que
sur un système
déjà occupé ¨
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
111001
0101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
100100
101...
Oeufs
bios
3.5 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
100100
101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
011110
0101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
100100
101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
blé bios
0.2 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
blé bios
0.2 €
011110
0101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €Blé
bio
0.2 €
Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
Blé
bio
0.2 €
Oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
Blé
bio
0.2 €
oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
Blé
bio
0.2 €
oeufs
bios
1.7 €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
L’impact négatif des buffers intermédiaires …
Oeufs
bios
3.5 €
farine
bio
1.1 €
Oeufs
bios
3.9 €
farine
bio
1.1 €
Blé
bio
0.2 €
oeufs
bios
1.7 €
prend du retard 

par le centre !!!
@cyrdup @tpierrain#ReactFin
… pour que la conflation soit effective…
évitez les buffer
ou les files
intermédiaires !
@cyrdup @tpierrain#ReactFin
Pour juguler les pics de charge
Donc…
@cyrdup @tpierrain#ReactFin
Facteurs clés pour le succès
•L’importance de la modélisation de votre //isme
!
•L’importance de la mesure
SLA percentiles !
@cyrdup @tpierrain#ReactFin
un avis, maitre ?
¨un ensemble de
propriétés, un
système Réactif
est ¨
@cyrdup @tpierrain#ReactFin
Agenda
•Banque d’investissement & marchés électroniques
•Construisons ensemble un « Pricer »
•Reactive Manifesto & Conclusion
@cyrdup @tpierrain#ReactFin
Reactive manifesto
react to events react to load
traits abordés aujourd’hui
@cyrdup @tpierrain#ReactFin
Etre réactif …
Ce n’est pas un marteau en or
@cyrdup @tpierrain#ReactFin
Etre réactif …
C’est une forme particulière
de design
@cyrdup @tpierrain#ReactFin
Une forme de design …
… qui a besoin de nouvelles patterns
@cyrdup @tpierrain#ReactFin
Etre réactif …
1. Ce n’est pas un marteau en or



2. C’est une forme particulière de design 



3. Qui a besoin de nouvelles patterns
@cyrdup @tpierrain#ReactFin
Etre réactif …
1. Ce n’est pas un marteau en or



2. C’est une forme particulière de design 



3. Qui a besoin de nouvelles patterns
Merci pour votre attention !
@cyrdup @tpierrain#ReactFin
Quelques références
1. Sites / blogs
• http://www.reactivemanifesto.org/
• http://mechanical-sympathy.blogspot.fr/ (Martin THOMPSON)
• http://dupdob.wordpress.com/ (many cores)
• http://tpierrain.blogspot.fr/ (use case driven)
2. Vidéos
• Metrics, Metrics everywhere (Coda HALE)

https://www.youtube.com/watch?v=czes-oa0yik
• Vidéo: How NOT to measure latency (Gil TENE)

http://www.infoq.com/presentations/latency-pitfalls
• React2014: https://www.youtube.com/user/reactconf/videos
3. Ouvrage:
• Release It!: Design and deploy prod ready software (Michael T. NYGARD)

More Related Content

Viewers also liked

QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for MicroservicesChris Richardson
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)Thomas Pierrain
 
Culture craft humantalks
Culture craft humantalksCulture craft humantalks
Culture craft humantalksThomas Pierrain
 
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerThe Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerElton Stoneman
 
Windows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareWindows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareElton Stoneman
 
.NET Inside - Microservices, .NET Core e Serverless
.NET Inside - Microservices, .NET Core e Serverless.NET Inside - Microservices, .NET Core e Serverless
.NET Inside - Microservices, .NET Core e ServerlessUlili Emerson Martins Nhaga
 
CQRS without event sourcing
CQRS without event sourcingCQRS without event sourcing
CQRS without event sourcingThomas Pierrain
 
Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
 
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...Chris Richardson
 
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Adrian Cockcroft
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloITCamp
 

Viewers also liked (17)

Async await...oh wait!
Async await...oh wait!Async await...oh wait!
Async await...oh wait!
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
Ddd reboot (english version)
Ddd reboot (english version)Ddd reboot (english version)
Ddd reboot (english version)
 
Culture craft humantalks
Culture craft humantalksCulture craft humantalks
Culture craft humantalks
 
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerThe Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
 
Windows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareWindows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should Care
 
.NET Inside - Microservices, .NET Core e Serverless
.NET Inside - Microservices, .NET Core e Serverless.NET Inside - Microservices, .NET Core e Serverless
.NET Inside - Microservices, .NET Core e Serverless
 
CQRS without event sourcing
CQRS without event sourcingCQRS without event sourcing
CQRS without event sourcing
 
Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...Solving distributed data management problems in a microservice architecture (...
Solving distributed data management problems in a microservice architecture (...
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
 
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...
Omnikron webbinar - Microservices: enabling the rapid, frequent, and reliable...
 
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea SaltarelloAzure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
Azure tales: a real world CQRS and ES Deep Dive - Andrea Saltarello
 

More from Thomas Pierrain

The scale-up, the autonomy and the nuclear submarine
The scale-up, the autonomy and the nuclear submarineThe scale-up, the autonomy and the nuclear submarine
The scale-up, the autonomy and the nuclear submarineThomas Pierrain
 
La scale-up, l'autonomie et le sous-marin nucléaire
La scale-up, l'autonomie et le sous-marin nucléaireLa scale-up, l'autonomie et le sous-marin nucléaire
La scale-up, l'autonomie et le sous-marin nucléaireThomas Pierrain
 
De l'autre côté du miroir
De l'autre côté du miroirDe l'autre côté du miroir
De l'autre côté du miroirThomas Pierrain
 
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDDWrite Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDDThomas Pierrain
 
Beyond Hexagonal architecture
Beyond Hexagonal architectureBeyond Hexagonal architecture
Beyond Hexagonal architectureThomas Pierrain
 
The 9 rules of debugging
The 9 rules of debuggingThe 9 rules of debugging
The 9 rules of debuggingThomas Pierrain
 
Hexagonal architecture vs Functional core / Imperative shell
Hexagonal architecture vs Functional core / Imperative shellHexagonal architecture vs Functional core / Imperative shell
Hexagonal architecture vs Functional core / Imperative shellThomas Pierrain
 
Une nuit dans l'hexagone
Une nuit dans l'hexagoneUne nuit dans l'hexagone
Une nuit dans l'hexagoneThomas Pierrain
 
As time goes by (episode 2)
As time goes by (episode 2)As time goes by (episode 2)
As time goes by (episode 2)Thomas Pierrain
 
Et si on parlait Éthique ?
Et si on parlait Éthique ?Et si on parlait Éthique ?
Et si on parlait Éthique ?Thomas Pierrain
 
L'Agilité a grande échelle : conserver l'esprit, pas la lettre
L'Agilité a grande échelle : conserver l'esprit, pas la lettreL'Agilité a grande échelle : conserver l'esprit, pas la lettre
L'Agilité a grande échelle : conserver l'esprit, pas la lettreThomas Pierrain
 
Legacy club (english version)
Legacy club (english version)Legacy club (english version)
Legacy club (english version)Thomas Pierrain
 
The art of Software Design
The art of Software DesignThe art of Software Design
The art of Software DesignThomas Pierrain
 
Culture Craft Devoxx 2015
Culture Craft Devoxx 2015Culture Craft Devoxx 2015
Culture Craft Devoxx 2015Thomas Pierrain
 

More from Thomas Pierrain (17)

The scale-up, the autonomy and the nuclear submarine
The scale-up, the autonomy and the nuclear submarineThe scale-up, the autonomy and the nuclear submarine
The scale-up, the autonomy and the nuclear submarine
 
Hexagonal And Beyond
Hexagonal And BeyondHexagonal And Beyond
Hexagonal And Beyond
 
La scale-up, l'autonomie et le sous-marin nucléaire
La scale-up, l'autonomie et le sous-marin nucléaireLa scale-up, l'autonomie et le sous-marin nucléaire
La scale-up, l'autonomie et le sous-marin nucléaire
 
De l'autre côté du miroir
De l'autre côté du miroirDe l'autre côté du miroir
De l'autre côté du miroir
 
eXtreme
eXtremeeXtreme
eXtreme
 
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDDWrite Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
Write Antifragile & Domain-Driven tests with ”Outside-in diamond” ◆ TDD
 
Beyond Hexagonal architecture
Beyond Hexagonal architectureBeyond Hexagonal architecture
Beyond Hexagonal architecture
 
The 9 rules of debugging
The 9 rules of debuggingThe 9 rules of debugging
The 9 rules of debugging
 
Hexagonal architecture vs Functional core / Imperative shell
Hexagonal architecture vs Functional core / Imperative shellHexagonal architecture vs Functional core / Imperative shell
Hexagonal architecture vs Functional core / Imperative shell
 
Une nuit dans l'hexagone
Une nuit dans l'hexagoneUne nuit dans l'hexagone
Une nuit dans l'hexagone
 
Equiper sa voie
Equiper sa voieEquiper sa voie
Equiper sa voie
 
As time goes by (episode 2)
As time goes by (episode 2)As time goes by (episode 2)
As time goes by (episode 2)
 
Et si on parlait Éthique ?
Et si on parlait Éthique ?Et si on parlait Éthique ?
Et si on parlait Éthique ?
 
L'Agilité a grande échelle : conserver l'esprit, pas la lettre
L'Agilité a grande échelle : conserver l'esprit, pas la lettreL'Agilité a grande échelle : conserver l'esprit, pas la lettre
L'Agilité a grande échelle : conserver l'esprit, pas la lettre
 
Legacy club (english version)
Legacy club (english version)Legacy club (english version)
Legacy club (english version)
 
The art of Software Design
The art of Software DesignThe art of Software Design
The art of Software Design
 
Culture Craft Devoxx 2015
Culture Craft Devoxx 2015Culture Craft Devoxx 2015
Culture Craft Devoxx 2015
 

Faible latence haut debit Devoxx FR 2014