Course Outline
Introduction to Reactive Programming
- Comparing blocking and non-blocking system architectures
- An overview of the Reactive Streams specification
- Key advantages and typical use cases
Project Reactor and Mono/Flux
- Understanding Publisher, Subscriber, and Subscription mechanics
- Practical usage of Mono and Flux types
- Managing errors and implementing backpressure
Initializing a Spring WebFlux Environment
- Bootstrapping a new Spring Boot WebFlux project
- Managing and configuring project dependencies
- Comparing WebClient and RestTemplate for communication
Developing Reactive REST APIs
- Defining application routes and handlers
- Mapping requests using RouterFunction
- Implementing reactive controllers and handling data binding
Database Integration Strategies
- Utilizing R2DBC for reactive SQL interactions
- Interacting with MongoDB using reactive patterns
- Consuming external APIs in a reactive manner
Testing WebFlux Applications
- Writing unit tests using StepVerifier
- Conducting integration tests with WebTestClient
- Simulating data sources and service dependencies
Performance Optimization and Best Practices
- Managing threading and scheduling within WebFlux
- Techniques for debugging reactive code
- Applying design patterns for scalable reactive architectures
Deployment and Practical Scenarios
- Deploying WebFlux applications to production environments
- Addressing CI/CD pipeline considerations
- Reviewing case studies and production usage examples
Course Summary and Recommended Next Steps
Requirements
- Solid knowledge of Java programming concepts
- Prior experience in web application development
- Working knowledge of HTTP protocols and RESTful API design
Target Audience
- Java developers exploring the realm of reactive programming for the first time
- Technical leads and architects evaluating the adoption of Spring WebFlux
- Backend engineers aiming to transition to non-blocking web application architectures
Testimonials (1)
The training helped me expand my knowledge and understanding of Burp Suite. I also realized that what I had learned through self-study was still quite limited. This training was very helpful to me as a QA because Burp Suite is a valuable tool for performing security testing and improving the overall quality of application testing. I will continue exploring this tool and learning more about its features and capabilities.