Skip to main content
00:00/00:00
Lecture 2 of 114

Why Reactive Programming - Part 2

Download Course (Free)

Course Content

0 / 114 completed
Section 1: Getting Started with the Course2 videos

Prerequisites

1m

Course Introduction

4m
Section 2: Why Reactive Programming2 videos

Why Reactive Programming - Part 2

4mNow Playing

Why Reactive Programming - Part 1

4m
Section 3: Introduction to Reactive Programming2 videos

What is Reactive Programming

6m

Introduction to Reactive Streams

5m
Section 4: Introduction to Spring WebFlux3 videos

Non-Blocking(Reactive) RestFul API using Spring WebFlux

3m

Introduction to Spring WebFlux

12m

What are we going to build in this Course

2m
Section 5: Getting Started with Project Reactor2 videos

Introduction to Project Reactor

5m

Reactor Reactive Types - Flux and Mono

20m
Section 6: Setting up the base project for this course1 videos

Project SetUp

7m
Section 7: Lets Explore Flux and Mono - Hands On21 videos

first-flux

8m

Let's write our very first Flux

12m

Let's write our very first Mono

5m

Reactive Stream Events

6m

Transforming Data Using Operators in Project Reactor

1m

Testing Flux using JUnit5

16m

Reactive Streams are Immutable

9m

Transform using map() Operator

7m

Filter using filter() Operator

14m

Advanced transform using the concatMap() Operator

12m

Asynchronous Operations using flatMap() Operator

17m

Advanced transform using the flatMap() Operator

26m

flatMapMany( ) operator in Mono

6m

Transform using the transform() Operator

26m

Introduction to Combining Reactive Streams

1m

Handling empty data using defaultIfEmpty and switchIfEmpty() Operators

32m

Combining Reactive Streams using merge() and mergeWith() Operators

23m

Combining Reactive Streams using concat and concatWith Operator

22m

flatMap( ) operator in Mono

26m

Combining Reactive Streams using mergeSequential() operator

12m

Combining Reactive Streams using zip and zipWith() Operator

45m
Section 8: Simple Non Blocking RESTFUL API using Annotated Controller Approach3 videos

Build a simple Non Blocking API - Mono

5m

Build a Simple Non Blocking API - Flux

21m

Build Infinite Streams API (SSE)

13m
Section 9: Automated Tests using JUnit5 and @WebFluxTest5 videos

Introduction to Automated Tests

6m

Testing Spring Webflux Endpoint using@WebFlux Test Annotation

22m

JUnit Test for the Mono Endpoint

9m

JUnit Test Streaming Endpoint - SSE

10m

Different Approaches of Testing an Endpoint

11m
Section 10: Reactive Programming in Mongo DB for the MovieInfo Service9 videos

Set up the MovieInfo Document

6m

Configure the ReactiveMongoDB Repository for MovieInfo Document

2m

Configure the Mongo DB server details in the application.yml file

7m

Setup the Integration Test using @DataMongoTest

5m

Write Integration Test for findById() MovieInfo Document

6m

Write Integration Test for saving the MovieInfo Document

7m

Write Integration Test for updating the MovieInfo Document

6m

Write Integration Test for findAll() MovieInfo Document

38m

Write Integration Test for deleting the MovieInfo Document

16m
Section 11: Build MovieInfo Service using Rest Controller Approach6 videos

Build a GET Endpoint to get all the MoviesInfo

12m

Build a POST endpoint to create a new MovieInfo

34m

Integration Test for the POST end point using JUnit5

18m

Build a GET Endpoint to retrieve a MovieInfo by ID

27m

Build the DELETE endpoint to delete a MovieInfo by ID

5m

Build a PUT Endpoint to update a MovieInfo by ID

38m
Section 12: Unit Testing in Spring WebFlux4 videos

Setting up the UnitTest in WebFlux

6m

Unit Test for the create MovieInfo Endpoint - POST

15m

Unit Test for GetAllMovieInfos endpoint - GET

18m

Unit Test for the update MovieInfo Endpoint - PUT

10m
Section 13: Bean Validation using Validators and ControllerAdvice3 videos

Bean Validation for List Field using @NotBlank Annotation

6m

Bean Validation for Name,Year with @NotBlank and @Positive Annotation Validators

53m

Customize the Default Error handling using ControllerAdvice

26m
Section 14: Using ResponseEntity with Reactive Types2 videos

Using ResponseEntity to dynamically change the Response Status

21m

Need for ResponseEntity in Spring WebFlux

34m
Section 15: Writing Custom Queries using ReactiveMongoRepository2 videos

Implement a Custom Query to retrieve MovieInfo by Year

8m

GET Endpoint to retrieve a MovieInfo by Year - Using @RequestParam

29m
Section 16: Spring WebFlux Under the Hood - Netty and Threading Model2 videos

How does Netty handle the Request

5m

How Netty works with Spring Webflux

39m
Section 17: Introduction to Functional Web Module in Spring WebFlux2 videos

Introduction to Functional Web

3m

Build a simple RestFul API using Functional Web

33m
Section 18: Build MoviesReview Service using Functional Web8 videos

Set up the Repository Class for the Review Document

2m

Write Integration test for creating a new Review

12m

Build the POST endpoint for creating a new Review

15m

Nesting Endpoints using nest() Function

6m

Build the GET endpoint for retrieving all the Reviews

9m

Build the PUT endpoint for updating an existing Review

18m

Build the DELETE endpoint for deleting an existing Review

17m

Build the GET endpoint to retrieve reviews for a given MovieInfoId

25m
Section 19: Unit Testing Functional Web2 videos

Setting up Test Class for Unit Testing

12m

Unit Test the POST endpoint for creating a new Review

10m
Section 20: Bean Validations using Functional Web3 videos

Adding the Constraint AnnotationMessages in the Review Document

5m

Unit Testing Bean Validation

8m

Validating the Bean using the Validator

35m
Section 21: Handling ResourceNotFound in FunctionalWeb2 videos

Resource NotFound(404) in Update Review using GlobalErrorHandler

20m

Resource Not Found(404) in Update Review - Alternate Approach

8m
Section 22: MoviesService - Rest Service connects the MovieInfo and MovieReview Service6 videos

Overview of the Application

4m

Setting Up the Controller in MoviesService

14m

Introduction to Spring WebClient & Configure WebClient

10m

Build the NonBlocking REST Client for ReviewService using Spring WebClient

11m

Build the NonBlocking REST Client for MovieInfoService using Spring WebClient

24m

Combine the MoviesInfoRestClient and ReviewRestClient

46m
Section 23: Custom Global ErrorHandler in Functional Web1 videos

Implement the GlobalErrorHandler in Functional Web

59m
Section 24: Handling Network Exceptions in WebClient4 videos

Network Exceptions in Service to Service Communications

1m

Implement the 4XX and 5XX error handling in ReviewsClient

8m

Handling 4XX in MoviesInfoService in WebClient

55m

Handling 5xx in MoviesInfoService in WebClient

34m
Section 25: Integration Testing External Services using WireMock5 videos

Introduction to WireMock

2m

SetUp Wiremock in Integration Tests

15m

Stubs for MoviesInfoService and ReviewService

56m

Simulate 4xx Errors in Wiremock

29m

Simulate 5xx Errors in Wiremock

19m
Section 26: Retrying Failed HTTP Calls5 videos

Why Retry failed HTTP calls

2m

Retry failed Http calls using retrySpec() - With BackOff before Retry Attempt

13m

Reusing the retry logic across different Rest Clients

25m

Retry failed Http calls using retrySpec() - Retrying Specific Exceptions

33m

Retry failed Http calls using retry()

30m
Section 27: Server Sent Events (SSE)7 videos

Catching up on Server Sent Events (SSE)

6m

Sinks - Hands On

39m

Integration Test for the Streaming Endpoint

26m

Introduction to Sinks

26m

Build a Streaming Endpoint in MoviesInfoService

23m

Build a Streaming Endpoint in MoviesReviewService

29m

Build a Streaming Client using WebClent in MoviesService

33m