Slide 1

Slide 1 text

Du réactif au service du pneu connecté Fabien Pomerol et Julien Ponge Devoxx France 2019

Slide 2

Slide 2 text

Fabien Pomerol Julien Ponge @jponge @FabienPomerol

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

SENSORS

Slide 8

Slide 8 text

ON-BOARD ROUTER MANUAL DEVICES + SMARTPHONE

Slide 9

Slide 9 text

Building an API to : Collect devices data Process it Generate Insight

Slide 10

Slide 10 text

Services Use case? Tyre end of life prediction Security (low pressure detection) Fleet Management

Slide 11

Slide 11 text

23 Million Assets > 1 Billion Device Events > 500 Req / sec Low resources footprint

Slide 12

Slide 12 text

Original Architecture Monolithic REST API Event Producer Web / Mobile Applications

Slide 13

Slide 13 text

Split Monolith into Microservices Rewrite using &

Slide 14

Slide 14 text

Ingestion Service Micro Services !

Slide 15

Slide 15 text

Ingestion Service Assets Service Micro Services !

Slide 16

Slide 16 text

Ingestion Service Assets Service Tyre Maintenance Micro Services !

Slide 17

Slide 17 text

Tyre Maintenance Edge Service Ingestion Service Assets Service Micro Services !

Slide 18

Slide 18 text

Insights Service Ingestion Service Assets Service Tyre Maintenance Edge Service Micro Services !

Slide 19

Slide 19 text

Ingestion Service Assets Service Alerting Tyre Maintenance Edge Service Insights Service Micro Services !

Slide 20

Slide 20 text

Micro Services ! Ingestion Service Assets Service Tyre Maintenance Edge Service Alerting Insights Service

Slide 21

Slide 21 text

Vert.x = ?

Slide 22

Slide 22 text

Blocking I/O don’t scale! Thread request #1 Thread request #2

Slide 23

Slide 23 text

Resources are scarce! “Cloud native” Virtual machines Containers

Slide 24

Slide 24 text

Event-loop thread Async I/O do scale! Async events

Slide 25

Slide 25 text

Reactive Systems Elasticity Resiliency Responsiveness

Slide 26

Slide 26 text

Reactive Asynchronous Event-driven Toolkit Fast Polyglot Versatile

Slide 27

Slide 27 text

Ingestion Flow Ingestion Service Event Producer TCP Socket HTTP:// MQTT

Slide 28

Slide 28 text

{ demo }

Slide 29

Slide 29 text

Service Aggregation Web / Mobile Applications Edge Service Assets Service Insights Service http:// http:// http:// Composition

Slide 30

Slide 30 text

Callback Future CompletionStage Quasar RxJava / RxKotlin Kotlin coroutines Event

Slide 31

Slide 31 text

{ demo }

Slide 32

Slide 32 text

Event Driven Microservices Ingestion Service Insights Service Alerting Service Events splits by topic Consume Pressure Events Publish Computed Insights Consume Insights

Slide 33

Slide 33 text

{ demo }

Slide 34

Slide 34 text

Embracing Async Programming was not so easy for the team Vert.x is unopinionated: easy to be tempted to built Framework / Cathedral Vert.x the hard way!

Slide 35

Slide 35 text

Keep the Vert.x EventBus usage inside microservices No durability No back pressure

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

Data Synchronisation Distributed Locks Exactly Once Idempotence Distributed Cache Tracing A NEW WORLD OF PROBLEMS Data Denormalization Concurrency Control

Slide 38

Slide 38 text

You can’t survive without monitoring and tracing !

Slide 39

Slide 39 text

40% off (all Manning) ctwdevoxxfr19

Slide 40

Slide 40 text

Thank you! Fabien Pomerol et Julien Ponge Devoxx France 2019 Icons made by Freepik, Smashicons from www.flaticon.com