Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Quarkus Insights 2023-03-06
Search
Julien Ponge
March 06, 2023
Programming
140
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
84
Scalability and resilience in practice: current trends and opportunities
jponge
0
320
Eclipse Vert.x at BruJUG 2019
jponge
0
220
Du réactif au service du pneu connecté
jponge
0
410
Bringing Reactive to Enterprise Java Developers
jponge
0
360
Golo LyonJUG 2019
jponge
0
320
Vert.x Montreal JUG 2018
jponge
0
570
Bringing Reactive to Enterprise Application Developer // Reactive Summit 2018
jponge
0
310
Démystifier le réactif et l'orchestration de services avec Vert.x, Kubernetes et Kotlin
jponge
0
310
Other Decks in Programming
See All in Programming
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.5k
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
130
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
150
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
200
小さなアプリを作って公開するまで
onozaty
0
100
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.6k
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
260
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.4k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
600
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
160
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
320
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
970
How GitHub (no longer) Works
holman
316
150k
Mobile First: as difficult as doing things right
swwweet
225
10k
Producing Creativity
orderedlist
PRO
348
41k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
2
1k
My Coaching Mixtape
mlcsv
0
380
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Mind Mapping
helmedeiros
1
430
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
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