
Explore reactive programming with project reactor and flux, and build a reactive REST with spring boot. The course starts with theory and progresses to work, including a YouTube-like streaming app.
Explore event driven streams in reactive programming, where publishers emit on_next events to subscribers, with asynchronous, non blocking data flow and on_complete and on_error signals.
Explore the reactive streams specification and its four interfaces—publisher, subscriber, subscription, and processor—and understand data flow, backpressure, and signals like on_next, on_complete, and on_error.
Learn how to enable logs for a Flux publisher using the meter log, observe on next, on complete, and on subscribe events, and verify data flow in the reactive streams.
Convert an Optional to a Mono in a reactive Spring WebFlux context, showing value emission from non-empty optionals and completion for empty or null ones. Subscribe and log to verify.
Convert a stream into a flux, then subscribe to the flux and print each value, observing on next and on complete events for a list of strings.
Convert arrays and lists into Flux using Flux.fromIterable, subscribe to observe onNext and onComplete events, and explore empty and null cases with sample values like John, Raj, and Peter.
Apply a filter on flux using predicates to select names with more than three characters, demonstrating on next and on complete events.
Explore mapping data in a flux with the map operation, transforming orders to IDs, and filtering by amount to produce long values.
Learn how flatMap on Flux enables one-to-many data transformation, converting a single input (order) into multiple items, with practical examples of retrieving and printing items per order.
Explore the request() method to control backpressure on a flux of integers, pulling five or two items at a time and handling on next, on complete, and on error.
Explore using a parallel scheduler to move downstream operations to new threads, revealing the main thread versus parallel threads and when to apply parallel scheduling in reactive streams.
Explore delaying the publication of flux elements using delay elements and duration, setting a one-second interval between values, and observing how parallel cellular threads handle each item.
Explore building a reactive get api with flux in Spring WebFlux, returning a flux of orders and streaming data in an event stream, with a delay illustrating streaming.
Create the first handler in a reactive spring boot app by defining an order handler component that returns a flux of orders and notes router setup for next.
Extend the router and handler to add multiple routes in a reactive rest api, using a functional style with get, post, and delete mappings returning order objects via mono.
***** Some Reviews From Students *****
its nice explanation
Great course for those (like me) who don't know about Reactive programming and searching for course to learn it from the beginning.
This course is all about Reactive Programming using Spring WebFlux and Spring Boot. It is asynchronous and non-blocking.
Now a days Spring Framework is widely used among Java Developers and specifically Spring Boot is in high demand. In this course you will learn Reactive Programming with Spring Boot.
You will learn reactive programming with Project Reactor library. First you will learn why need of Reactive REST APIs over traditional REST APIs.
Apart from this you will learn -
What is Back Pressure ?
Event Driven Stream
Reactive Stream Specification
You will learn Flux & Mono Reactive Types with Project Reactor library. Different methods provided in Flux and Mono. You will learn back pressure with request() and cancel() methods.
You will learn different Schedulers In Reactive Streams.
Immediate Scheduler
Parallel Scheduler
Single Scheduler
BoundedElastic Scheduler
After having the basic knowledge of reactive programming we will jump to Spring WebFlux with Spring Boot. You will learn functional endpoint with RouterFunction and HandlerFunction.
Then you will learn to Build Non Blocking REST APIs with Spring WebFlux & Spring Data R2DBC along with MySQL Database. Spring Data R2DBC is used to interact with SQL databases just like we have Spring Data JPA. In Reactive Stack Spring Data R2DBC is replacement of Spring Data JPA.
We will perform CRUD Operations (Create/Read/Update/Delete) using Spring Data R2DBC and MySQL database. Here different HTTP methods are covered like GET, POST, PUT and DELETE.
Video Streaming Platforms are perfect example for Reactive APIs and that what this course covers. Here we will create Video Streaming App just like YouTube using Spring WebFlux.