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
Quarkus Insights 2023-03-06
Search
Julien Ponge
March 06, 2023
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Quarkus Insights 2023-03-06
Julien Ponge
March 06, 2023
More Decks by Julien Ponge
See All by Julien Ponge
Reactive Streams. 4 Interfaces. Et après ?
jponge
0
67
Scalability and resilience in practice: current trends and opportunities
jponge
0
310
Eclipse Vert.x at BruJUG 2019
jponge
0
210
Du réactif au service du pneu connecté
jponge
0
400
Bringing Reactive to Enterprise Java Developers
jponge
0
350
Golo LyonJUG 2019
jponge
0
300
Vert.x Montreal JUG 2018
jponge
0
550
Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018
jponge
0
300
Démystifier le réactif et l'orchestration de services avec Vert.x, Kubernetes et Kotlin
jponge
0
300
Other Decks in Programming
See All in Programming
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
290
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
430
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
270
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.4k
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
260
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
270
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
560
AIが無かった頃の素敵な出会いの話
codmoninc
1
280
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
710
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
180
What's New in Android 2026
veronikapj
0
240
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
120
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Designing for Performance
lara
611
70k
Become a Pro
speakerdeck
PRO
31
6k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
250
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
400
It's Worth the Effort
3n
188
29k
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
Ruling the World: When Life Gets Gamed
codingconduct
0
290
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Transcript
java.util.stream.* java.util.concurrent.Flow.* 2 kinds of “stream” APIs Efficient in-memory data
stream processing Backpressured async I/O data stream processing
“Reactive Streams is an initiative to provide a standard for
asynchronous stream processing with non-blocking back pressure.” — https:/ /www.reactive-streams.org/ Mutiny! Photo by Arno Senoner on Unsplash
org.reactivestreams.* (Java 6 legacy) java.util.concurrent.Flow.* (since JDK 9) Back-pressured, asynchronous,
non-blocking (see Reactive Streams TCK) < your own library / client / driver / … > APIs Protocol User-facing APIs
return flux .filter(n -> n % 2 == 0) .map(n
-> "[" + n + "]") .flatMap(Database :: record) .retry(5); return multi .select().where(n -> n % 2 == 0) .onItem().transform(n -> "[" + n + "]") .onItem().transformToUniAndMerge(Database :: record) .onFailure() .retry() .withBackOff(Duration.ofSeconds(1)) .atMost(5); RxJava / Reactor Mutiny Functional dialect, fl at 100+ methods list Event-based dialect, group-based api
Ok, 4 interfaces. Must be easy, right? Publisher<T> Subscriber<T> Processor<T,U>
Subscription
None
None
None
None
None
Migrate to Flow Use adapters Strategies: from legacy to Flow
Support both APIs New APIs. Same TCK. Best for 3rd-party libraries that haven’t migrated yet. Virtually no-cost. Transition for user code: RESTEasy Reactive, Reactive Messaging, …
Mutiny Zero (44 Kilobytes JAR) RS <-> Flow Mutiny Zero
Adapters Vert.x -based stream publishers Mutiny Zero — minimal helper libraries to make publishers