faible latence haut debit devoxx fr 2014

Post on 26-Jun-2015

431 Views

Category:

Software

4 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

@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)

top related