Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Spring Webflux Masterclass: Reactive Microservices [2024]

Posted By: ELK1nG
Spring Webflux Masterclass: Reactive Microservices [2024]

Spring Webflux Masterclass: Reactive Microservices [2024]
Last updated 8/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 4.45 GB | Duration: 13h 18m

Build Highly Responsive, Scalable, Efficient Microservices With Spring WebFlux and Reactive Programming

What you'll learn

Spring WebFlux From Scratch

Reactive Microservices

Performance Comparison - Traditional vs Reactive

Achieving High Performance & Scalability With HTTP2

Streaming API With Back-Pressure

Reactive Relational DB Connectivity R2DBC

Server Sent Events

WebClient

Functional Endpoints

WebFilters / Interceptors

Integration Testing

Requirements

Strong Knowledge on Reactive Programming (checkout my course if you are new to reactive programming)

Knowledge on Spring Boot

Comfortable with Indian Accent :)

Description

Prerequisite: Knowledge on Reactive Programming.Course FocusThis course provides a comprehensive introduction to Spring WebFlux, a framework for building highly scalable, resilient and responsive web applications using reactive programming principles.What You'll LearnTraditional vs Reactive APIsHow Reactive APIs are different from Traditional APIs.Reactive Data Access R2DBCLearn to connect to relational databases reactively using R2DBC drivers, create reactive repositories with Spring Data R2DBC, implement CRUD operations with reactive data access patterns, and effectively integration test your data access layer.Running a throughput/efficiency test to demonstrate the power of R2DBC, its throughput and how it uses the system resources more efficiently compared to Spring Data JPA.Building CRUD OperationsMaster creating reactive controllers with Spring WebFlux annotations, handling requests and responses with Flux and Mono, integration testing your reactive controllers.Error Handling StrategiesDiscover techniques for managing exceptions within reactive pipelines using various operators. Learn how to return meaningful error responses for a robust user experience.WebFilter/Interceptor ChainingExplore how to implement WebFilters for pre-processing and post-processing requests and responses. Chain multiple WebFilters for complex logic, pass attributes from WebFilters to controllers, and share data effectively.Functional Programming with WebFluxLeverage the power of lambda expressions to write concise and readable code. Build reactive controllers with functional endpoints and understand the benefits of functional programming within WebFlux.Building Reactive ClientsLearn to use WebClient to build reactive clients that consume external APIs using reactive streams and handle asynchronous responses efficiently in a non-blocking manner.StreamingImplement client-side streaming for uploading data as a stream using WebClient and explore backpressure handling for optimized data transfer.Implement server-side streaming for downloading data as a stream using WebClient.Implement Server-Sent Events (SSE) with Spring WebFlux to enable real-time data updates from server to client.Optimizing for PerformanceGzip compressionHTTP connection pooling to optimize bandwidth usage and application scalability.Leveraging HTTP/2 protocol for efficient communication (New!).Integration TestingMaster integration testing with WebTestClient, combining testing practices into our learning process throughout the course.Course StructureFocus on practical code examples and demos tailored to each module's specific topic.Hands-on labs to solidify your learning throughout the course.Access to resources for further learning on both Spring WebFlux and prerequisite reactive programming concepts (articles, tutorials, official documentation).By the end of this course, you'll be equipped with the knowledge and skills to build modern, performant, and scalable web applications using Spring WebFlux.NoteA basic understanding of reactive programming is assumed as a prerequisite for this course.Join this course to master Spring WebFlux and unlock the potential of reactive programming for developing highly performant and scalable microservices. Gain the skills necessary to build resilient, efficient, and real-time applications using Spring WebFlux's non-blocking and event-driven architecture.

Overview

Section 1: Introduction

Lecture 1 Before You Enroll

Section 2: Traditional vs Reactive APIs

Lecture 2 *** Resource ***

Lecture 3 Project Setup

Lecture 4 External Services

Lecture 5 Traditional vs Reactive API

Lecture 6 Traditional vs Reactive API - Demo

Lecture 7 Traditional vs Reactive API - Demo via Browser

Lecture 8 Exposing Streaming API

Lecture 9 Common Mistake Using Reactive Pipeline

Lecture 10 How Reactive Web Works - Step By Step

Lecture 11 FAQ - Should Entire Stack Be Reactive?

Lecture 12 Reactive Web is Resilient - Demo

Lecture 13 Summary

Section 3: Spring Data R2DBC

Lecture 14 Introduction

Lecture 15 Connection String

Lecture 16 *** Resource *** - Database Initialization Scripts

Lecture 17 Project Setup

Lecture 18 Spring Data - Crash Course

Lecture 19 Customer Entity / Repository

Lecture 20 Step Verifier - Crash Course

Lecture 21 CRUD Using Repository - Part 1

Lecture 22 CRUD Using Repository - Part 2

Lecture 23 CRUD Using Repository - Part 3

Lecture 24 R2DBC - Show SQL

Lecture 25 *** Assignment *** - Price Range Query Method

Lecture 26 Pageable

Lecture 27 What About Complex Queries?

Lecture 28 *** Resource *** - SQL For Products Ordered By Customer

Lecture 29 Join Query Using @Query

Lecture 30 *** Resource *** - SQL For Projection

Lecture 31 Projection

Lecture 32 R2DBC Database Client

Lecture 33 Summary

Section 4: R2DBC vs JPA/JDBC

Lecture 34 Introduction

Lecture 35 [Performance Test] Throughput / Efficiency

Lecture 36 How R2DBC Works

Lecture 37 FAQ - Can I Use Spring Data JPA?

Lecture 38 Reactive Manifesto

Section 5: Reactive CRUD APIs

Lecture 39 Introduction

Lecture 40 FAQ - Do We Need DTOs?

Lecture 41 DTO / Entity / Repository

Lecture 42 Service Class Implementation

Lecture 43 Controller

Lecture 44 FAQ - @RequestBody Mono vs T

Lecture 45 CRUD APIs Demo

Lecture 46 Mono/Flux - Response Entity

Lecture 47 Handling 4XX via Response Entity

Lecture 48 @Modifying Query

Lecture 49 Paginated Results

Lecture 50 CRUD APIs Demo

Lecture 51 WebTestClient - Introduction

Lecture 52 Integration Testing - Part 1

Lecture 53 Integration Testing - Part 2

Lecture 54 Integration Testing - Part 3

Lecture 55 POST / PUT - Body Publisher vs Body Value

Lecture 56 Summary

Section 6: Input Validation / Error Handling

Lecture 57 Problem Detail

Lecture 58 What About Bean Validation?

Lecture 59 Project Setup

Lecture 60 Application Exceptions

Lecture 61 Request Validator

Lecture 62 Validation - Emitting Error Signal

Lecture 63 @ControllerAdvice

Lecture 64 Demo via Postman

Lecture 65 *** Assignment ***

Lecture 66 Integration Tests

Lecture 67 Summary

Section 7: WebFilter

Lecture 68 Introduction

Lecture 69 WebFilter Chain - How It Works

Lecture 70 Authentication & Authorization Requirements

Lecture 71 WebFilter Implementation

Lecture 72 Attributes via WebFilter

Lecture 73 WebFilter Demo

Lecture 74 Accessing Attributes via @Controller

Lecture 75 Problem Detail - WebFilter Workaround

Lecture 76 *** Assignment ***

Lecture 77 Integration Tests

Lecture 78 Summary

Section 8: Functional Endpoints

Lecture 79 Introduction

Lecture 80 Router Configuration - Part 1

Lecture 81 Request Handler

Lecture 82 Router Configuration - Part 2

Lecture 83 Input Validation / Error Handler

Lecture 84 Paginated Results

Lecture 85 Order Of The Routes

Lecture 86 Demo via Postman

Lecture 87 Integration Tests

Lecture 88 Multiple Router Functions

Lecture 89 Nested Router Functions

Lecture 90 What About WebFilters

Lecture 91 Request Predicates

Lecture 92 *** Assignment ***

Lecture 93 Functional / Request Predicates - Assignment Solution

Lecture 94 Summary

Section 9: WebClient - Non-Blocking HTTP Client

Lecture 95 Introduction

Lecture 96 Project Setup

Lecture 97 Simple GET

Lecture 98 Non-blocking Concurrent Requests

Lecture 99 [Optional] - How Event Loop Works

Lecture 100 URI Variables

Lecture 101 Streaming GET

Lecture 102 POST - Body Publisher vs Body Value

Lecture 103 Default Headers Configuration / Override

Lecture 104 Remote Service - Error Handling

Lecture 105 Retrieve / Exchange

Lecture 106 Query Params

Lecture 107 Basic Auth

Lecture 108 Bearer Auth

Lecture 109 Exchange Filter Function

Lecture 110 *** Assignment ***

Lecture 111 WebClient Attributes

Lecture 112 Summary

Section 10: Streaming

Lecture 113 Introduction

Lecture 114 Uploading Million Products - Usecase

Lecture 115 JSON Lines

Lecture 116 Project Setup

Lecture 117 Product Service

Lecture 118 Product Streaming Upload API

Lecture 119 Product Client

Lecture 120 Client Streaming Request - Demo

Lecture 121 @RequestBody - Non-Blocking Clarification

Lecture 122 1 Million Products Upload - Demo

Lecture 123 *** Assignment *** - Download API

Lecture 124 *** Resource *** - FileWriter

Lecture 125 1 Million Products Download - Demo

Lecture 126 What About Bidirectional Stream

Lecture 127 Summary

Section 11: Server Sent Events / SSE

Lecture 128 Introduction

Lecture 129 Sink Configuration

Lecture 130 Emitting Items via Sink

Lecture 131 Exposing Streaming API

Lecture 132 SSE Demo

Lecture 133 Price Filter Implementation

Lecture 134 *** Resource *** - Index HTML

Lecture 135 Adding UI

Lecture 136 Price Filter Demo via UI

Lecture 137 Integration Tests

Section 12: Performance Optimization

Lecture 138 Introduction

Lecture 139 gzip

Lecture 140 *** Resource *** - gzip Properties

Lecture 141 Enabling gzip

Lecture 142 gzip Demo

Lecture 143 Keep Alive / Connection Pooling

Lecture 144 Keep Alive / Connection Pooling - Project Setup

Lecture 145 *** Resource *** - Netstat Command

Lecture 146 HTTP Connections via netstat

Lecture 147 Configuring Connection Pool Size

Lecture 148 Pool Size Calculation

Lecture 149 SocketException - Too Many Open Files Issue

Lecture 150 HTTP2 Introduction

Lecture 151 HTTP2 - Demo

Lecture 152 SubscribeOn - For Blocking IO

Lecture 153 Summary

Section 13: Final Project - Reactive Microservices

Lecture 154 Trading Platform - Introduction

Lecture 155 [Customer Portfolio] - *** Resource *** - Database Initialization Scripts

Lecture 156 [Customer Portfolio] - Requirements Discussion

Lecture 157 [Customer Portfolio] - Project Setup

Lecture 158 [Customer Portfolio] - DTO / Entity / Repository

Lecture 159 [Customer Portfolio] - Application Exceptions

Lecture 160 [Customer Portfolio] - Customer Information Service

Lecture 161 [Customer Portfolio] - Trade Buy Request Handler

Lecture 162 [Customer Portfolio] - Trade Sell Request Handler

Lecture 163 [Customer Portfolio] - Controller

Lecture 164 [Customer Portfolio] - Exception Handler

Lecture 165 [Customer Portfolio] - Integration Tests - Part 1

Lecture 166 @Transactional - H2 DB Warning

Lecture 167 [Customer Portfolio] - Integration Tests - Part 2

Lecture 168 [Aggregator] - Introduction

Lecture 169 [Aggregator] - Project Setup

Lecture 170 [Aggregator] - Request Validator

Lecture 171 [Aggregator] - Stock Service Client

Lecture 172 [Aggregator] - Hot Price Stream

Lecture 173 [Aggregator] - Customer Service Client

Lecture 174 [Aggregator] - Customer Portfolio Service

Lecture 175 [Aggregator] - Exposing Trade Platform APIs

Lecture 176 [Aggregator] - @ControllerAdvice

Lecture 177 [Aggregator] - Configuration

Lecture 178 MockServer - Introduction

Lecture 179 *** Resource *** - MockServer Dependency

Lecture 180 [Aggregator] - Integration Test - Setup

Lecture 181 [Aggregator] - Mocking Customer Service

Lecture 182 [Aggregator] - Integration Tests - Customer Information API Test

Lecture 183 [Aggregator] - Integration Tests - Stock Service Stream API Test

Lecture 184 [Aggregator] - Integration Tests - Customer Trade API Test

Lecture 185 Demo via Postman

Lecture 186 *** Resource **** - Index HTML

Lecture 187 Trading Platform - Final Demo

Section 14: What's Next?

Lecture 188 What's Next?

Lecture 189 Reactive Course Series

Section 15: Bonus Section / Articles

Lecture 190 R2DBC - Entity Callback

Lecture 191 Spring WebFlux - File Upload Example

Lecture 192 Spring WebFlux Security

Any Developer / Architect who is interested in Microservice Development / Architecture with WebFlux