Build Reactive MicroServices using Spring WebFlux/SpringBoot

Learn to write Reactive programming and build Reactive MicroServices using Spring WebFlux and project Reactor
4.51 (5732 reviews)
Udemy
platform
English
language
Web Development
category
Build Reactive MicroServices using Spring WebFlux/SpringBoot
38 360
students
8.5 hours
content
Nov 2024
last update
$44.99
regular price

Why take this course?

It looks like you're outlining a comprehensive guide to building a reactive application with Spring WebFlux, MongoDB, and WebClient, focusing on non-blocking APIs and real-time data streaming. Here's a breakdown of the content you've described, along with some additional context where needed:

  1. Introduction to Reactive Programming: This section would cover the basics of reactive programming, including its principles and how it differs from traditional imperative programming. It would also introduce the concept of backpressure and how it is handled in a reactive stream.

  2. Spring WebFlux & Netty - Execution Model: Here you would explain how Spring WebFlux leverages Netty as its underlying reactor-netty support to handle non-blocking IO operations for handling HTTP requests and responses. This section would also cover the different layers of Spring WebFlux, including the web server factory (Netty, Tomcat, etc.), controller layer, and routing layer.

  3. RouterFunction and HandlerFunction: These are key components in Spring WebFlux that allow you to define routes and their corresponding handlers in a functional style. You would learn how to use RouterFunction to route requests to specific HandlerFunctions.

  4. WebTestClient for Testing: This section would teach you how to write non-blocking test cases for your reactive endpoints using WebTestClient, a non-blocking HTTP client for testing web applications in a Java environment.

  5. Reactive API with RestController: Here you would build a reactive endpoint using @RestController annotated classes and methods, and learn how to integrate them with reactive data sources like MongoDB. You would also write tests using JUNIT and WebTestClient to validate the CRUD operations.

  6. Reactive API with Functional Web: In this section, you would use the functional programming approach provided by Spring WebFlux to build your reactive endpoints. This includes defining routes and handlers using Function and Mono or Flux types directly. You would again write tests for these endpoints.

  7. Build Non Blocking Client using WebClient: This section would cover how to use the WebClient utility provided by Spring WebFlux to make non-blocking calls to other reactive services or APIs. You would learn about the different methods available in WebClient, such as exchange(), retrieve(), and how to handle the various HTTP methods (GET, PUT, POST, DELETE) with it.

  8. Handling Exceptions: In this section, you would explore different ways to handle exceptions within your reactive application. For RestController based endpoints, you would use @ExceptionHandler and @ControllerAdvice. For functional endpoints, you would learn about the WebExceptionHandler. You would also write tests for these exception handling scenarios using JUNIT.

  9. Streaming Real Time Data using WebFlux - Server Side Events (SSE): In this final section, you would build an endpoint that streams real-time data from MongoDB to the client using Server Side Events (SSE). You would cover the use of tailable cursors and capped collections in MongoDB, and how to leverage the @Tailable annotation in Spring WebFlux to achieve this. You would also write JUNIT tests for your streaming endpoints.

This outline provides a comprehensive roadmap for building a full-stack reactive application with Spring WebFlux and MongoDB, covering both backend and frontend aspects of a reactive system. It emphasizes the importance of writing clean, well-tested code and understanding how to effectively handle real-time data streaming and exception scenarios within a reactive context.

Loading charts...

Comidoc Review

Our Verdict

While there's room for improvement regarding the course pace and code visualization, this Build Reactive Microservices using Spring WebFlux/SpringBoot course is a solid starting point that delves into reactive programming principles, Project Reactor implementation, and test automation with JUNIT. Enhancements such as refining slides, updating the Spring Boot version, and including more hands-on projects would ensure a smoother learning experience for beginners and professionals alike. Overall, the course is insightful but would benefit from addressing minor issues to improve overall satisfaction.

What We Liked

  • Comprehensive coverage of Reactive Programming principles and implementation using Spring WebFlux and Project Reactor.
  • Instructor's expertise in subject matter contributes to valuable insights and examples throughout the course.
  • Focus on writing automated test cases with JUNIT for Reactive API, enabling better understanding of testing practices in reactive environments.
  • Comprehensive introduction to Spring Reactive Libraries and Functional Programming.

Potential Drawbacks

  • Instructor's fast pace during lessons and occasional over-blown pronunciation might be challenging for some learners follow along.
  • Code can occasionally blur on the screen, making it difficult to keep up.
  • Lack of focus on specific technologies like RSocket and WebSocket in WebFlux.
  • Minor issues with inaccuracies in certain slides and outdated Spring Boot version.
1565240
udemy ID
21/02/2018
course created date
22/11/2019
course indexed date
Bot
course submited by