Reactive Programming With Java And Project Reactor
Published 11/2024
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1017.74 MB | Duration: 3h 23m
Learn the core principles of reactive programming, the foundation of Spring WebFlux's reactive stack.
What you'll learn
Essential principles of reactive programming and reactive systems
Concepts of Reactive Streams that serve as a foundation for reactive programming
Using Project Reactor with Java to create projects
How to use creation, transformation, and filtering operators in Project Reactor
How to handle error scenarios in reactive programming
How to combine data streams with operators
Using Schedulers with reactive programming
Backpressure strategies
Requirements
Intermediate knowledge in Java
Knowledge of the Java 8 Streams API
Description
In this practical and focused course, you'll learn about Reactive Programming with a focus on Project Reactor, a widely recognized Java library that simplifies building reactive, non-blocking systems.This course is designed for software developers who want to enhance their skills in reactive programming and explore Project Reactor as a powerful tool. It's ideal for Java developers and anyone interested in creating highly responsive and efficient systems.You'll learn about reactive data streams, handling concurrency, error management, and more. By the end of the course, you'll have a solid understanding of reactive programming.What You Will Learn:Core Concepts: Explore the essential principles of reactive programming, including reactive systems, synchronous and asynchronous flows, non-blocking operations, and event propagation in data streams.Reactive Streams: Dive into Reactive Streams, which provide the foundation for reactive programming, enabling applications to dynamically react to events and data flows.Introduction to Project Reactor: Discover Project Reactor, getting to know its key components like Flux and Mono, and learn how to use them to create reactive applications.Creation Operators: Explore Project Reactor's creation operators, which let you generate reactive data streams from various sources, such as collections, expanding your options for building reactive applications.Operators: Learn how to apply transformation and filter operators to shape reactive data streams to fit your needs.Combining Streams: Understand how to combine, merge, and aggregate data streams efficiently.Error Handling: Learn effective strategies for error handling and recovery in reactive environments.Schedulers: Understand the importance of Schedulers in reactive programming and learn how to manage concurrency and optimize task execution for efficient systems.Backpressure: Learn to manage backpressure, a key technique to ensure data streams are processed efficiently, preventing overload.
Overview
Section 1: Introduction
Lecture 1 About the Course and Prerequisites
Lecture 2 Course Materials
Section 2: Important Concepts
Lecture 3 Traditional System vs Reactive System
Lecture 4 Reactive Manifesto
Lecture 5 Core Principles of Reactive Programming
Lecture 6 Summary
Lecture 7 Want to Learn More About the Event Loop?
Section 3: Reactive Streams
Lecture 8 Introduction
Lecture 9 Implementing the Publisher
Lecture 10 Implementing the Subscriber
Lecture 11 Implementing the Subscription
Lecture 12 Running the Example
Lecture 13 Summary
Section 4: Introduction to Project Reactor
Lecture 14 What is Project Reactor?
Lecture 15 Implementing Project Reactor 1
Lecture 16 Implementing Project Reactor 2
Lecture 17 Summary
Section 5: Creation Operators
Lecture 18 Understanding How Operators Work
Lecture 19 Basic Creation Operators
Lecture 20 Flux().create() Operator
Lecture 21 Flux().create() Operator in Practice
Lecture 22 Flux().generate() Operator
Lecture 23 Flux().generate() Operator in Practice
Lecture 24 Summary
Section 6: Operators
Lecture 25 How the take() Operator Works in a Stream
Lecture 26 take() and takeWhile() Operators
Lecture 27 map() Operator
Lecture 28 flatMap() Operator - Part 1
Lecture 29 flatMap() Operator - Part 2
Lecture 30 filter() Operator
Lecture 31 delayElements() Operator
Lecture 32 transform() Operator
Lecture 33 Side Effects Operators
Lecture 34 Summary
Section 7: Combining Streams with Operators
Lecture 35 concat Operator
Lecture 36 merge() Operator
Lecture 37 zip() Operator
Lecture 38 Summary
Section 8: Error Handling
Lecture 39 onErrorReturn Operator
Lecture 40 onErrorResume Operator
Lecture 41 onErrorContinue Operator
Lecture 42 onErrorComplete Operator
Lecture 43 onErrorMap Operator
Lecture 44 isEmpty and defaultIfEmpty Operators
Lecture 45 retry and retryWhen Operator
Lecture 46 Summary
Section 9: Schedulers
Lecture 47 Example of Blocking Operation
Lecture 48 How Schedulers Work
Lecture 49 Using Schedulers in Practice
Lecture 50 Parallel Processing with Schedulers
Lecture 51 Parallel Processing with Schedulers in Practice
Lecture 52 Summary
Section 10: Backpressure
Lecture 53 onBackpressureBuffer Strategy: Part 1
Lecture 54 onBackpressureBuffer Strategy: Part 2
Lecture 55 onBackpressureError Strategy
Lecture 56 onBackpressureDrop Strategy
Lecture 57 onBackpressureLatest Strategy
Lecture 58 Defining Backpressure Strategy in the Flux.create() Operator
Lecture 59 Summary
Section 11: Hot and Cold Publisher
Lecture 60 Difference Between a Cold Publisher and a Hot Publisher
Lecture 61 Creating a Hot Publisher with the autoConnect() Operator
Lecture 62 Creating a Hot Publisher with the autoConnect(n) Operator
Lecture 63 Creating a Hot Publisher with the share() and refCount() Operators
Lecture 64 Summary
People interested in starting with reactive programming in Java.,Developers who want to learn about Project Reactor before diving into WebFlux to build a stronger foundation.,Java developers and anyone interested in building highly responsive and efficient systems.