Spring WebFlux Masterclass: High-Performance Reactive APIs
Build 10x Faster, Scalable Spring Boot WebFlux Microservices: Non-Blocking I/O, R2DBC, WebClient, HTTP/2, Streaming
Build 10x Faster, Scalable Spring Boot WebFlux Microservices: Non-Blocking I/O, R2DBC, WebClient, HTTP/2, Streaming
The course project is up to date Spring Boot 4.0
This Masterclass is the practical, complete guide to Spring WebFlux. You will master Non-Blocking I/O techniques, leveraging Reactive Programming principles, to build highly scalable and resilient microservices. The core focus is on maximizing performance and throughput by eliminating thread blocking. Learn advanced Spring Boot and Spring WebFlux skills including R2DBC for reactive data access, and HTTP/2 Streaming for optimal inter-service communication. This course delivers the expertise needed to transform your enterprise architecture for high-concurrency demands.
What You Will Master: Core Skills & Performance
Every module is designed to provide you with an immediate, high-value, and actionable skill:
Reactive vs. Traditional APIs: Understand the architectural shift from blocking to Non-Blocking I/O. Master the fundamental differences between Traditional APIs and Reactive APIs for maximum scalability.
Reactive Data Access & Benchmarking (R2DBC): Implement non-blocking data access using R2DBC drivers and Spring Data R2DBC repositories. Benchmark and prove the throughput and resource efficiency of R2DBC against Spring Data JPA.
Reactive Controller Development: Master creating reactive controllers, handling requests and responses using Flux/Mono, and validating logic using the dedicated WebTestClient tool.
Advanced Error Handling: Discover techniques for managing exceptions within reactive pipelines. Implement strategies to return meaningful, consistent error responses for a robust user experience.
WebFilter Chaining & Cross-Cutting Concerns: Explore how to implement and chain multiple WebFilters for complex logic. Master pre-processing and post-processing requests and effectively share data across the reactive flow.
Functional Programming in WebFlux: Leverage the power of lambda expressions to write concise, readable code. Build controllers using the modern functional endpoints (Router Functions) pattern.
Building Non-Blocking Clients (WebClient): Learn to use WebClient to consume external APIs asynchronously using reactive streams. Handle asynchronous responses efficiently in a truly non-blocking manner.
Streaming & Real-Time Data: Implement client-side and server-side data streaming for large file transfers using WebClient. Master backpressure handling for optimized performance. Enable real-time updates using Server-Sent Events (SSE) with Spring WebFlux.
Optimizing for Performance (Microservice Communication): Implement Gzip compression for maximum bandwidth savings. Configure HTTP connection pooling to reduce connection overhead. Leverage HTTP/2 protocol and multiplexing for efficient concurrent communication.
Integration Testing Mastery: Master end-to-end testing with WebTestClient, embedding rigorous testing practices throughout the entire course.
By the end of this course, you will be the expert ready to build modern, high-throughput, and scalable Spring WebFlux microservices that maximize resource efficiency under load.
FAQ area empty
*** Resource ***: Up to date with Spring Boot 4.X
Xem trướcProject Setup
187 Xem trướcExternal Services
195 Xem trướcTraditional vs Reactive API
572Traditional vs Reactive API - Demo
390Traditional vs Reactive API - Demo via Browser
124Exposing Streaming API
139 Xem trướcCommon Mistake Using Reactive Pipeline
245How Reactive Web Works - Step By Step
576 Xem trướcFAQ - Should Entire Stack Be Reactive?
70Reactive Web is Resilient - Demo
413 Xem trướcSummary
74R2DBC - Introduction
217Connection String
53*** Resource *** - Database Initialization Scripts
Project Setup
429Spring Data - Crash Course
204Customer Entity / Repository
301Step Verifier - Crash Course
177CRUD Using Repository - Part 1
556CRUD Using Repository - Part 2
305CRUD Using Repository - Part 3
340R2DBC - Show SQL
124*** Assignment *** - Price Range Query Method
160Pageable
223What About Complex Queries?
204*** Resource *** - SQL For Products Ordered By Customer
Join Query Using @Query
233*** Resource *** - SQL For Projection
Projection
284R2DBC Database Client
216Summary
61Reactive CRUD APIs - Introduction
160FAQ - Do We Need DTOs?
211DTO / Entity / Repository
119Service Class Implementation
576Controller
259FAQ - @RequestBody Mono<T> vs T
117CRUD APIs Demo
173Mono/Flux - Response Entity
326Handling 4XX via Response Entity
207@Modifying Query
241Paginated Results
375CRUD APIs Demo
129WebTestClient - Introduction
291Integration Testing - Part 1
525Integration Testing - Part 2
333Integration Testing - Part 3
165POST / PUT - Body Publisher vs Body Value
159Summary
132WebFilter - Introduction
244WebFilter Chain - How It Works
499Authentication & Authorization Requirements
128WebFilter Implementation
314Attributes via WebFilter
433WebFilter Demo
134Accessing Attributes via @Controller
101Problem Detail - WebFilter Workaround
299*** Assignment ***
95Integration Tests
288Summary
93Functional Endpoints - Introduction
127Router Configuration - Part 1
213Request Handler
903Router Configuration - Part 2
207Input Validation / Error Handler
501Paginated Results
137Order Of The Routes
85Demo via Postman
128Integration Tests
63Multiple Router Functions
118Nested Router Functions
351What About WebFilters
262Request Predicates
363*** Assignment ***
157Functional / Request Predicates - Assignment Solution
669Summary
123WebClient - Introduction
337Project Setup
228Simple GET
263Non-blocking Concurrent Requests
241[Optional] - How Event Loop Works
226URI Variables
152Streaming GET
292POST - Body Publisher vs Body Value
351Default Headers Configuration / Override
370Remote Service - Error Handling
553Retrieve / Exchange
350Query Params
310Basic Auth
187Bearer Auth
90Exchange Filter Function
524*** Assignment ***
129WebClient Attributes
247Summary
309Streaming - Introduction
177Uploading Million Products - Usecase
193JSON Lines
224Project Setup
119Product Service
130Product Streaming Upload API
264Product Client
182Client Streaming Request - Demo
358@RequestBody - Non-Blocking Clarification
1311 Million Products Upload - Demo
136*** Assignment *** - Download API
164*** Resource *** - FileWriter
1 Million Products Download - Demo
255What About Bidirectional Stream
59Summary
61Performance Optimization- Introduction
78Gzip
287*** Resource *** - gzip Properties
Enabling gzip
134Gzip Demo
142Keep Alive / Connection Pooling
228Keep Alive / Connection Pooling - Project Setup
308*** Resource *** - Netstat Command
HTTP Connections via netstat
215Configuring Connection Pool Size
542Pool Size Calculation
74SocketException - Too Many Open Files Issue
195HTTP2 Introduction
126HTTP2 - Demo
355SubscribeOn - For Blocking IO
97Summary
249Performance Optimization Challenge
0Trading Platform - Introduction
282[Customer Portfolio] - *** Resource *** - Database Initialization Scripts
[Customer Portfolio] - Requirements Discussion
440[Customer Portfolio] - Project Setup
129[Customer Portfolio] - DTO / Entity / Repository
334[Customer Portfolio] - Application Exceptions
223[Customer Portfolio] - Customer Information Service
402[Customer Portfolio] - Trade Buy Request Handler
1128[Customer Portfolio] - Trade Sell Request Handler
269[Customer Portfolio] - Controller
159[Customer Portfolio] - Exception Handler
183[Customer Portfolio] - Integration Tests - Part 1
468@Transactional - H2 DB Warning
76[Customer Portfolio] - Integration Tests - Part 2
693[Aggregator] - Introduction
500[Aggregator] - Project Setup
280[Aggregator] - Request Validator
283[Aggregator] - Stock Service Client
153[Aggregator] - Hot Price Stream
351[Aggregator] - Customer Service Client
444[Aggregator] - Customer Portfolio Service
252[Aggregator] - Exposing Trade Platform APIs
342[Aggregator] - @ControllerAdvice
66[Aggregator] - Configuration
204MockServer - Introduction
396*** Resource *** - MockServer Dependency
[Aggregator] - Integration Test - Setup
201[Aggregator] - Mocking Customer Service
818[Aggregator] - Integration Tests - Customer Information API Test
358[Aggregator] - Integration Tests - Stock Service Stream API Test
407[Aggregator] - Integration Tests - Customer Trade API Test
1134Demo via Postman
405*** Resource **** - Index HTML
Trading Platform - Final Demo
364Strong Knowledge on Reactive Programming (checkout my course if you are new to reactive programming)
Knowledge on Spring Boot
Comfortable with Indian Accent :)
Master Spring WebFlux: Learn how to build modern, scalable, and responsive web applications using Spring WebFlux.
Embrace Reactive Programming: Understand the benefits of reactive programming for building efficient and scalable applications.
Leverage R2DBC: Learn how to use R2DBC for reactive data access and improve application performance.
Achieving High Performance & Scalability With HTTP2
Build Reactive Controllers: Create reactive controllers with Spring WebFlux annotations and handle requests and responses efficiently.
Implement Error Handling: Learn effective error handling strategies for a robust user experience.
Use WebFilters for Pre-processing and Post-processing: Chain WebFilters for complex logic and share data effectively.
Implement Streaming: Learn how to implement client-side and server-side streaming for optimized data transfer.
Optimize for Performance: Use techniques like Gzip compression, HTTP connection pooling, and HTTP/2 to improve application performance.
Master Integration Testing: Learn how to effectively test your Spring WebFlux applications using WebTestClient.
Hands-On Learning: Learn through practical code examples and labs.
Real-World Scenarios: Apply your knowledge to build real-world web applications.
Expert Guidance: Learn from a seasoned instructor who specializes in Spring WebFlux.