WeAreDevelopers LIVE Nov 12, 2020

Slip Through the Boundaries of Legacy Systems with Kotlin and Spring WebFlux

Lukas Georgieff , Alberto Gisbert

Are legacy architectures choking your high-throughput services? Migrating to Kotlin and Spring WebFlux solves thread exhaustion. Learn to master reactive streams without triggering silent operational failures.

Pause
Mute Enter Fullscreen
#1 about 4 min

Backend architecture and legacy integrations at Porsche

How Porsche relies on synchronous monolithic architectures to support its growing digital backend services.

#2 about 2 min

Comparing Spring WebFlux and Spring MVC stacks

How threading architectures and request parsing structurally diverge between declarative and reactive web stacks.

#3 about 2 min

Load testing reactive versus imperative controllers

A side-by-side demonstration evaluating a deliberately lagging server handling competing load profiles concurrently.

#4 about 4 min

Analyzing load test results and thread efficiency

Why lower thread counts within WebFlux survive overwhelming operational loads avoiding traditional application crashes.

#5 about 2 min

Evaluating latency tradeoffs in reactive architectures

The hidden response speed penalties accumulating when inadvertently chaining asynchronous engines against synchronous dependencies.

#6 about 2 min

Transitioning from RestTemplate to WebClient publishers

How syntax demands differ completely when REST invocations generate abstract Mono publishers instead of simple strings.

#7 about 5 min

Creating a synchronous file reader simulation

How sequential processing methodologies create severe thread blockages via persistent memory starvation and idle times.

#8 about 4 min

Building an asynchronous pull model interface

How asynchronous callbacks connected to non-blocking files prevent primary application threads from stalling.

#9 about 3 min

Highlighting bottlenecks in naive push models

Why blasting internal messaging arrays blindly ultimately chokes slower subsystems struggling with concurrent intake limits.

#10 about 2 min

Balancing consumer limits using back pressure

How active publishers regulate throughput pacing by strictly waiting upon dynamic volume requests from subscribers.

#11 about 2 min

Outlining the standard Reactive Manifesto principles

Why scalable applications conceptually mandate responsive, resilient, elastic, and thoroughly message-driven behavior at their core.

#12 about 3 min

Examining reactive stream specification core types

How the agnostic cross-language standard binds disconnected modules firmly through strict declarative contract definitions.

#13 about 5 min

Implementing a custom publisher and subscription request

Applying manual iterating callbacks establishes discrete links feeding raw data arrays steadily into registered sinks.

#14 about 3 min

Processing collections using Flux and Mono

Utilizing Project Reactor building blocks accurately separates zero-or-one possibilities from unbound cascading streams.

#15 about 4 min

Validating structural reactive pipelines using StepVerifier

How dedicated verification suites manipulate virtual clocks testing signal logic deterministically before exiting unit loops.

#16 about 4 min

Handling unexpected crashes from null values

Why reactive type bindings detonate uncontrollably when functional map components return technically forbidden null objects.

#17 about 4 min

Troubleshooting silent failures in empty Mono operations

How silently discarding components directly halts downstream computations without emitting observable log traces.

#18 about 3 min

Distinguishing reactive assembly and subscription phases

Why decoupling compilation allocations stops redundant logic elements triggering instantly prior to eventual listener registration.

#19 about 4 min

Caching results effectively with hot Monos

How naive default annotations misinterpret objects retaining promises instead of locally persisting correctly resolved numbers.

Matching moments

3:12 min

Solving thread blocking with reactive frameworks and Kotlin

Jan Weinschenker Jan Weinschenker · World Congress 2024

2:17 min

Adopting Spring WebFlux and the Reactor API

Matthias Falkenberg +1 · World Congress 2022

2:03 min

Building scalable applications with reactive programming

Josh Long · World Congress 2022

1:42 min

Resolving reactive stream errors in blocking applications

Filip Egeric Filip Egeric · World Congress 2026 Europe

3:16 min

Benchmarking concurrency models and throughput performance

Matthias Falkenberg +1 · World Congress 2022

2:31 min

Contextual history of reactive programming in Java ecosystems

Ivan Šarić Ivan Šarić · Europe 2026 Virtual

Upcoming sessions on this topic

Open session

World Congress 2026 North America

September 24, 2026 · 14:10–14:40

Stage 9

One Repo, One Strategy: Scalable Full-Stack Testing in a Monorepo World

Bartosz Leczycki, Paweł Matynia

Bartosz Leczycki
Paweł Matynia
Open session

World Congress 2026 North America

September 24, 2026 · 14:50–15:20

Stage 9

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

September 25, 2026 · 15:30–15:40

Outdoor Stage

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare
Open session

World Congress 2026 North America

September 25, 2026 · 12:55–13:25

Stage 3

Replay-Safe Architecture: Building Event-Driven Systems That Can Recover With Confidence

Ishan Shah

PayPal, Software Engineer | Distributed Systems, AI, and Platform Engineering

Ishan Shah
Open session

World Congress 2026 North America

September 25, 2026 · 10:20–10:50

Stage 2

API = Some REST and HTTP, right? RIGHT?!

Rustam Mehmandarov

Passionate computer scientist

Rustam Mehmandarov
Open session

World Congress 2026 North America

September 25, 2026 · 09:40–10:10

Stage 3

Still on 4.8 or lower? A Practical Guide to Moving Your "Un-Migratable" .NET Apps

Isaac Levin

Developer Advocate

Isaac Levin