Slip Through the Boundaries of Legacy Systems with Kotlin and Spring WebFlux
What if you could handle 10x the load with one-third of the threads? Learn how Porsche integrates with slow legacy systems using a reactive stack.
#1about 5 minutes
Building efficient services for legacy system environments
Traditional synchronous architectures struggle with slow legacy systems, creating a need for more resource-efficient reactive approaches.
#2about 5 minutes
Comparing WebFlux and MVC performance under memory constraints
A load test demonstrates that Spring WebFlux handles ten times more requests than Spring MVC with the same limited memory, highlighting its superior efficiency.
#3about 11 minutes
Exploring asynchronous I/O with the publisher model
The core of reactive programming is the publisher model, which avoids blocking threads by using asynchronous I/O and callbacks instead of waiting for data.
#4about 11 minutes
Managing data flow with backpressure and reactive streams
Backpressure combines pull and push models to prevent overwhelming consumers, a core concept formalized by the Reactive Streams specification.
#5about 3 minutes
Implementing reactive streams with Project Reactor's Mono and Flux
Project Reactor provides concrete publisher types like Mono for 0-1 items and Flux for N items, along with a rich set of operators for manipulating data streams.
#6about 4 minutes
How to effectively test reactive publishers
The StepVerifier class in Project Reactor provides a robust way to test asynchronous code by verifying emitted signals, data, and completion states over time.
#7about 6 minutes
Avoiding common pitfalls with nulls and empty publishers
Reactive streams do not permit null values, and empty publishers can cause silent failures in operators like zip, requiring careful handling.
#8about 3 minutes
Understanding assembly time versus subscription time
Failing to distinguish between when a reactive pipeline is defined (assembly time) and when it executes (subscription time) can lead to unexpected eager evaluations.
#9about 4 minutes
Navigating the complexities of caching reactive streams
Standard caching annotations cache the "cold" publisher definition, not the result, requiring the use of operators like .cache() to create a "hot" source that replays the value.
Related jobs
Jobs that call for the skills explored in this talk.
Why Attend a Developer Event?Modern software engineering moves too fast for documentation alone. Attending a world-class event is about shifting from tactical execution to strategic leadership.
Skill Diversification: Break out of your specific tech stack to see how the industry...