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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
64
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
290
Other Decks in Programming
See All in Programming
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
540
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.5k
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
110
OSもどきOS
arkw
0
530
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
160
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
530
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
110
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
6
4.1k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
JavaDoc 再入門
nagise
0
320
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Music & Morning Musume
bryan
47
7.2k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Agile that works and the tools we love
rasmusluckow
331
21k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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