Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Du réactif au service du pneu connecté
Search
Julien Ponge
April 18, 2019
Programming
0
290
Du réactif au service du pneu connecté
Julien Ponge
April 18, 2019
Tweet
Share
More Decks by Julien Ponge
See All by Julien Ponge
Quarkus Insights 2023-03-06
jponge
0
52
Reactive Streams. 4 Interfaces. Et après ?
jponge
0
25
Scalability and resilience in practice: current trends and opportunities
jponge
0
230
Eclipse Vert.x at BruJUG 2019
jponge
0
160
Bringing Reactive to Enterprise Java Developers
jponge
0
270
Golo LyonJUG 2019
jponge
0
240
Vert.x Montreal JUG 2018
jponge
0
380
Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018
jponge
0
220
Démystifier le réactif et l'orchestration de services avec Vert.x, Kubernetes et Kotlin
jponge
0
230
Other Decks in Programming
See All in Programming
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
なぜ宣言的 UI は壊れにくいのか / Why declarative UI is less fragile
uenitty
29
13k
継続的な活動で築く地方エンジニアの道
myamashii
2
350
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
Async Await: Mastering Python's Time-Bending Tricks - EuroPython2024
yanbo
1
290
12年前の『型システム入門』翻訳の思い出話
mame
11
1.2k
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
CSC307 Lecture 10
javiergs
PRO
0
310
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
CSC307 Lecture 05
javiergs
PRO
0
210
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Featured
See All Featured
The Invisible Side of Design
smashingmag
294
50k
Agile that works and the tools we love
rasmusluckow
325
20k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
Rebuilding a faster, lazier Slack
samanthasiow
78
8.5k
We Have a Design System, Now What?
morganepeng
46
7k
Bash Introduction
62gerente
607
210k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
34
1.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
15
4.9k
Raft: Consensus for Rubyists
vanstee
134
6.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Transcript
Du réactif au service du pneu connecté Fabien Pomerol et
Julien Ponge Devoxx France 2019
Fabien Pomerol Julien Ponge @jponge @FabienPomerol
None
None
None
None
SENSORS
ON-BOARD ROUTER MANUAL DEVICES + SMARTPHONE
Building an API to : Collect devices data Process it
Generate Insight
Services Use case? Tyre end of life prediction Security (low
pressure detection) Fleet Management
23 Million Assets > 1 Billion Device Events > 500
Req / sec Low resources footprint
Original Architecture Monolithic REST API Event Producer Web / Mobile
Applications
Split Monolith into Microservices Rewrite using &
Ingestion Service Micro Services !
Ingestion Service Assets Service Micro Services !
Ingestion Service Assets Service Tyre Maintenance Micro Services !
Tyre Maintenance Edge Service Ingestion Service Assets Service Micro Services
!
Insights Service Ingestion Service Assets Service Tyre Maintenance Edge Service
Micro Services !
Ingestion Service Assets Service Alerting Tyre Maintenance Edge Service Insights
Service Micro Services !
Micro Services ! Ingestion Service Assets Service Tyre Maintenance Edge
Service Alerting Insights Service
Vert.x = ?
Blocking I/O don’t scale! Thread request #1 Thread request #2
Resources are scarce! “Cloud native” Virtual machines Containers
Event-loop thread Async I/O do scale! Async events
Reactive Systems Elasticity Resiliency Responsiveness
Reactive Asynchronous Event-driven Toolkit Fast Polyglot Versatile
Ingestion Flow Ingestion Service Event Producer TCP Socket HTTP:// MQTT
{ demo }
Service Aggregation Web / Mobile Applications Edge Service Assets Service
Insights Service http:// http:// http:// Composition
Callback Future CompletionStage Quasar RxJava / RxKotlin Kotlin coroutines Event
{ demo }
Event Driven Microservices Ingestion Service Insights Service Alerting Service Events
splits by topic Consume Pressure Events Publish Computed Insights Consume Insights
{ demo }
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!
Keep the Vert.x EventBus usage inside microservices No durability No
back pressure
None
Data Synchronisation Distributed Locks Exactly Once Idempotence Distributed Cache Tracing
A NEW WORLD OF PROBLEMS Data Denormalization Concurrency Control
You can’t survive without monitoring and tracing !
40% off (all Manning) ctwdevoxxfr19
Thank you! Fabien Pomerol et Julien Ponge Devoxx France 2019
Icons made by Freepik, Smashicons from www.flaticon.com