Supersonic Streams: When Quarkus Met Kafka

A presentation at Current London 2026 in May 2026 in London, UK by Viktor Gamov

Slide 1

Slide 1

SUPERSONIC STREAMS / When Quarkus Met Kafka @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 2

Slide 2

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 3

Slide 3

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 4

Slide 4

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 5

Slide 5

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 6

Slide 6

QR Code — Join the Game Scan to join the game @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 7

Slide 7

Waiting for players… [LIVE DASHBOARD — TEAM LOBBY] Waiting for players… @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 8

Slide 8

PLAY [LIVE DASHBOARD — GAME PLAY] Full-screen during 90s of audience play @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 9

Slide 9

Winning Team [LIVE DASHBOARD — FINAL SCORES] @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 10

Slide 10

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 11

Slide 11

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 12

Slide 12

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 13

Slide 13

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 14

Slide 14

Where the 47 minutes actually go. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 15

Slide 15

Quick check. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 16

Slide 16

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 17

Slide 17

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 18

Slide 18

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 19

Slide 19

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 20

Slide 20

Step 1: Bare Quarkus, cold. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 21

Slide 21

Demo Live — quarkus create + quarkus dev [LIVE TERMINAL] $ quarkus create app supersonic $ cd supersonic && quarkus dev @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 22

Slide 22

0.9 seconds. JVM. No native compile. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 23

Slide 23

Step 2: Bolt on a Kafka producer. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 24

Slide 24

Demo Live — Add Kafka Producer [LIVE IDE + TERMINAL] quarkus ext add reactive-messaging-kafka @Channel(“power”) Emitter<PowerEvent> @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 25

Slide 25

Wait. Where did the broker come from? @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 26

Slide 26

Demo Live — Verify Dev Services [LIVE TERMINAL] $ docker ps $ kafka-console-consumer.sh —topic power … $ curl http://localhost:8080/produce Or use quarkus @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 27

Slide 27

47 minutes → 2 seconds. Verified. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 28

Slide 28

Step 3.5: Ask the code assistant. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 29

Slide 29

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 30

Slide 30

Step 4: Tests, with a real broker. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 31

Slide 31

Demo Live — Run the Test [LIVE TERMINAL] $ mvn test @QuarkusTest — real Kafka via Dev Services @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 32

Slide 32

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 33

Slide 33

Last step: ship it. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 34

Slide 34

Demo Live — Deploy + Scale-to-Zero [LIVE TERMINAL + BROWSER] $ mvn package -Dquarkus.kubernetes.deploy=true $ kubectl get pods @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 35

Slide 35

Five steps. Real demo. Real Kafka. Real Kubernetes. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 36

Slide 36

And that’s what you played. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 37

Slide 37

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 38

Slide 38

5-day forecast. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 39

Slide 39

Shownotes, slides, demo code. speaking.gamov.io @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 40

Slide 40

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 41

Slide 41

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 42

Slide 42

@gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 43

Slide 43

One thing to do this week. @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 44

Slide 44

QR Code — If we have time Shaking Game Scan to join the game @gamussa (X/Bluesky) · vikgamov (LinkedIn) | @kevindubois (X/LinkedIn)

Slide 45

Slide 45

as always have a nice day