Upload
thomas-pierrain
View
431
Download
4
Tags:
Embed Size (px)
DESCRIPTION
Comment concevoir des systèmes capables d’encaisser des dizaines de milliers d’updates par seconde sans s’engorger, ni dépasser la milli seconde de traitement ? Comment écrire du code scalable qui reste lisible –mais garanti 100% sans deadlock ? Que recouvre le reactive manifesto et les termes : conflation, sequencer, immutable state ? Après vous avoir présenté les besoins et contraintes du trading électronique, nous répondrons à toutes ces questions dans une session qui s'annonce...technique.
Citation preview
@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
COMPR
IS?
@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 automatesAlgo trading
@cyrdup @tpierrain#ReactFin
Les automatesAlgo 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ésentationPasta pricer
dans la même boite...
@cyrdup @tpierrain#ReactFin
Bases pour notre représentationPasta pricer
des flux d evenementson reçoit ..
on publie ..
dans la même boite...
@cyrdup @tpierrain#ReactFin
Bases pour notre représentationPasta 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
pennepennepennepennepennepennepennegnocchi
pennepennepennepennepennepennepennepenne
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
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
1110010101...
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Approche mono thread
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Oeufs 1.5 €
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Gnocchi 5.4 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
Gnocchi 5.4 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
gnocchi
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
Oeufs 1.5 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
penne 2.1 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
penne 2.1 €
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
penne
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
01100101100
…
Oeufs 1.5 €
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs 1.5 €
penne
pennepennepennepennepennepennepennepen
nepennepenne—- — pen
nepennepennepennepennepennepenne————
—
Approche mono thread
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs 1.5 €
penne——— —
——pennepennepennepennepennepennepenne————
—
Approche mono thread
0110010110
0…
@cyrdup @tpierrain#ReactFin
Oeufs 1.5 €
Calc Encdec
Pasta pricer
pennepennepenne—-
— ——
Approche mono thread
0110010110
0…
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Oeufs 1.5 €
pennepenne——-
Approche mono thread
0110010110
0…
@cyrdup @tpierrain#ReactFin
Calc Encdec
Pasta pricer
Approche mono thread
pennepennepennepennepennepennepenne————
—pennepennepennepennepennepennepenne————
—
@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
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
1110010101...
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...
Oeufs bios 3.5 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
dec
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...Oeufs bios 3.5 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- ——- —
—————
gnocchi
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
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
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
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
penne 5.4 €
.... .... €
...... 8.2 €
.... €
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
penne 5.4 €
.... .... €
...... 8.2 €
.... €
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- —
penne
—————
—- —
—- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- ——- —
—- ——- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- ——- —
—- —
—————
gnocchi
11101001011
11100...
111101.
.....
....
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
11100...
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
11101001011
111101.
.....
....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
111101.
.....
....—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
111101.
.....
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@cyrdup @tpierrain#ReactFin
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
encCalc
...dec
Pasta pricer
Approche 1 worker thread / pate
—- ——- —
—- —
—————
gnocchi
—- —
penne
—————
@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
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Approche « pool de threads »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
1110010101...
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
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
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
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
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
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
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
01100011010
…
11111000110
…
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
penne bio
01100011010
…
11111000110
…
Approche « pool de thread »
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…11111000110
…
Approche « pool de thread »
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
11111000110
…
Approche « pool de thread »
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
11111000110
…
Approche « pool de thread »
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
01100011010
…
Approche « pool de thread »
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain#ReactFin
Approche « pool de thread »Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@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
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
1110010101...
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec Oeufs bios 3.5 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
Pool de thread et race conditions…
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
0001110010 ...
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
carton +1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
carton +1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
carton +1.2 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Oeufs bios 3.5 €
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
5.4 €
Gnocchi bio
4.4 € !!!
!!!
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
gnocchi bio
Gnocchi bio
4.4 €
01100101100
… 5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
Gnocchi bio
4.4 €
01100101100
…
5.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
gnocchi bio
Pool de thread et race conditions…
pennepennepennepennepennepennepenne pen
nepennepennepennepenne ... ..
..
01100101100
…
1100010111 …
5.4 €
4.4 €
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
Pool de thread et race conditions…
01100101100
…
1100010111 …
5.4 €
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
Pool de thread et race conditions…
01100101100
…
1100010111 …
5.4 €
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
dernier prix pour les gnocchis: 4.4 € !!!
@cyrdup @tpierrain#ReactFin
Pasta pricer
Calc
Calc
Calc
Enc
Enc
Enc
dec
pennepennepennepenne
.... ... pennepennepennepenne
.. ....
Pool de thread et race conditions…
1100010111 …
4.4 €
pennepennepennepennepennepennepenne pen
nepennepennepennepennepenneGnocchi
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
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
1110010101...
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
0110110101…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110110101…
Sequ gnocchi
gnocchi
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
farine 0.5 €
Sequ gnocchi
gnocchi
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
farine 0.5 €
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
farine 0.5 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
1110010101...
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Oeufs 1.5 €
Sequ gnocchi
gnocchi
0110110101…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
0110110101…
Sequ gnocchi
gnocchi
Oeufs 1.5 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
farine 0.5 €
Sequ gnocchi
gnocchi
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
farine 0.5 €
Sequ gnocchi
gnocchi
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
farine 0.5 €
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
farine 0.5 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
GNOCCHI 6.1 €
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Sequ gnocchi
gnocchi
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
01100101100
…
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Le sequencer en action
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
Gnocchi
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
@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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
1110010101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
100100101...
Oeufs bios 3.5 €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer
Exemple de pic de charge
SEQ
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
100100101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101...
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
100100101...
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
blé bios 0.2 € . .. ..
.. .. ..
.. .. .. .
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101...
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
01100101100…
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
01100101100…
01100101100…
01100101100…
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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
GnocchiSEQ
farfalle
SEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
GnocchiSEQ
penne
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é
1110010101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
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é
100100101...
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é
100100101...
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
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é
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
0111100101... 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é
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
100100101... 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
0111100101...
@cyrdup @tpierrain#ReactFin
Calc
Calc
Calc
Enc
Enc
Enc
dec
Pasta pricer système déjà chargé
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…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é
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
.. .. .. .
.. .. €
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
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
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
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
01100101100…
. .. .. .. .. .. .. .. ..
.
.. .. ..
.. .. ..
.. . . .. ..
01100101100…
01100101100…
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
01100101100…
01100101100…
01100101100…
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
01100101100…
01100101100…
01100101100…
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 …
1110010101...
@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 …
100100101...
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 €
100100101...
@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 €
0111100101...
@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 €
100100101...
@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 €
0111100101...
@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érences1. 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)