What’s the number one rule of reactive programming with Spring WebFlux? And what happens when your team inevitably breaks it?
#1about 2 minutes
Comparing Spring MVC and Spring WebFlux models
Spring MVC uses a blocking, thread-per-request model, while Spring WebFlux uses a non-blocking, asynchronous event loop model for better resource utilization.
#2about 3 minutes
A restaurant analogy for blocking vs non-blocking I/O
An analogy of waiters in a restaurant illustrates how the non-blocking model of Spring WebFlux is more efficient than the blocking, thread-per-request model of Spring MVC.
#3about 3 minutes
How the event loop model improves resource utilization
Spring WebFlux uses a small number of event loop threads that handle requests in a non-blocking fashion, preventing threads from waiting idly on I/O operations.
#4about 4 minutes
Core concepts of Project Reactor: Publisher and Subscriber
Project Reactor is built on the Publisher-Subscriber pattern, using Mono for single items and Flux for streams, which only emit data upon subscription.
#5about 7 minutes
Building a reactive API controller with Spring WebFlux
Implementing a reactive controller involves wrapping request and response types in Mono or Flux and using a functional, chained programming style with operators like flatMap.
#6about 5 minutes
Handling blocking I/O and transactions in reactive streams
Calling blocking database operations from a reactive stream blocks the event loop, requiring the use of `subscribeOn` to offload work and breaking standard `@Transactional` behavior.
#7about 6 minutes
Implementing manual transaction management in WebFlux
Transactions in a hybrid reactive application require manual management using `PlatformTransactionManager` and a dedicated single-threaded scheduler to maintain thread context across operations.
#8about 5 minutes
Exploring reactive data access and messaging options
To fully leverage WebFlux, the data access layer must also be reactive, using technologies like R2DBC, Hibernate Reactive, or native reactive drivers for NoSQL databases.
#9about 8 minutes
Lessons from a hybrid reactive and blocking architecture
A real-world job platform demonstrates a hybrid model, highlighting the complexity of mixing blocking and non-blocking code and reinforcing that a fully reactive stack is ideal.
#10about 11 minutes
Q&A: Thread safety, RxJava vs Reactor, and debugging
The Q&A session addresses common concerns, including the importance of thread safety, the similarities between RxJava and Reactor, and the inherent difficulties of debugging asynchronous code.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
04:33 MIN
Moving from blocking to non-blocking with Spring WebFlux
Back(end) to the Future: Embracing the continuous Evolution of Infrastructure and Code
02:13 MIN
Exploring reactive Java frameworks and adoption challenges
Side-by-Side: Reactive vs non-reactive Java
03:26 MIN
Live code demonstration of reactive Java
Side-by-Side: Reactive vs non-reactive Java
05:10 MIN
Comparing WebFlux and MVC performance under memory constraints
Slip Through the Boundaries of Legacy Systems with Kotlin and Spring WebFlux
09:05 MIN
Q&A on virtual threads, reactive programming, and Java 21
Introduction and pitfalls of Java's new concurrency model
02:51 MIN
Building a reactive service with Spring Data
Kubernetes Native Java
03:47 MIN
Exploring approaches to non-blocking software development
Java's Project Loom & Co - the end for reactive programming?
02:29 MIN
Using Kotlin Coroutines to simplify complex reactive code
Back(end) to the Future: Embracing the continuous Evolution of Infrastructure and Code
Why You Shouldn’t Build a Microservice ArchitectureWelcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Michael Eisenbart who talks about the pros and cons of microservice architecture.About the speaker:Michael has been working for Bosch as a sof...
Chris Heilmann
Micro Components - a different approach to a simpler component-based webThere has been a lot of heated discussion lately in the web community about component based development. One side argued that Web Components are a standard we should follow whereas others complained that they still lag behind in what frameworks offer...
Benedikt Bischof
Web Development Best Practices: What The Data Tells usWelcome to the new issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Laurie Voss who gave advice about the best practices in web development. What you will learn:What’s the current state of web development - “k...
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take partStarting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
From learning to earning
Jobs that call for the skills explored in this talk.