Reactive Programming in Modern Java using Project Reactor

Why take this course?
¡Hola! It seems like you're looking for an outline or summary of a course on Project Reactor within the context of reactive programming, possibly using Spring WebFlux. Based on the structure you've provided, here's a detailed breakdown of each section:
Section 15: Making Blocking Calls in MovieReactiveService
In this section, you will learn how to introduce blocking calls into a reactive pipeline using Project Reactor. This includes understanding how to handle blocking operations and integrating them with non-blocking streams.
Section 16: BackPressure
Backpressure is a critical concept in reactive programming that deals with handling the load when the upstream processor pushes more data than the downstream can process. You will learn about different strategies to handle backpressure, including:
- Introduction to BackPressure
- Implementing BackPressure using various operators like
onBackpressureDrop()
,onBackpressureBuffer()
, andonBackpressureError()
- Writing JUnit tests to validate the backpressure behavior
Section 17: Explore Data Parallelism in Project Reactor
In this section, you'll explore how to introduce parallel execution into your reactive pipelines. You will learn about:
- Using
parallel()
andrunOn()
operators for parallel processing - Utilizing the
flatmap()
operator to handle parallel data streams - Understanding the difference between
flatMapSequential()
andflatmap()
in the context of parallel processing
Section 18: Cold & Hot Streams
Reactive streams can be categorized as cold or hot based on their behavior. In this section, you will:
- Learn about cold and hot streams and their significance
- Understand how to work with cold streams using operators like
cold()
- Explore hot streams and learn how to use
ConnectableFlux
and its variants
Section 19: JUnit Testing using VirtualTimeScheduler
Testing reactive applications can sometimes be challenging due to their asynchronous nature. In this section, you will:
- Learn about
VirtualTimeScheduler
for synchronous testing of reactive streams - Use
StepVerifier
in conjunction withVirtualTimeScheduler
to test your streams
Section 20: Build NonBlocking RestClient using WebClient
In this section, you will create a non-blocking REST client using Spring's WebClient
. You will:
- Understand the Reactive Movie API
- Implement a non-blocking
MovieInfoService
andReviewService
RestClient - Build out the
getAllMovies
andgetMovieById
services usingWebClient
- Set up integration tests using WireMock
Section 21: Programmatically Creating a Flux
Reactor provides various ways to create a Flux
programmatically. In this section, you will learn about:
- Using the
create()
method to build complex sequences - Using the
push()
method for more control over the sequence creation
Section 22: Debugging in Project Reactor
Debugging reactive applications can be different from traditional applications. In this section, you will:
- Learn how to debug exceptions in reactive streams using "checkpoint" operators like
doOnNext()
andthen()
- Utilize hooks such as
Hooks.onOperatorDebug()
for deeper insights into the stream processing - Set up global debugging for production-ready applications using the
ReactorDebugAgent
By the end of this course, you should have a comprehensive understanding of reactive programming principles, be able to apply them effectively in your projects, and understand when and how to use different Project Reactor features. This knowledge will enable you to build robust, scalable, and responsive applications with Project Reactor and WebFlux.
Loading charts...