GithubHelp home page GithubHelp logo

spring-webflux-course's Introduction

Reactive Microservices With Spring WebFlux

This repoistory contains the source code for Spring Webflux course on Udemy.

Course Focus

This 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 Learn

  • Traditional vs Reactive APIs
    • How Reactive APIs are different from Traditional APIs.
  • Reactive Data Access R2DBC
    • Learn 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 Operations
    • Master creating reactive controllers with Spring WebFlux annotations, handling requests and responses with Flux and Mono, integration testing your reactive controllers.
  • Error Handling Strategies
    • Discover techniques for managing exceptions within reactive pipelines using various operators. Learn how to return meaningful error responses for a robust user experience.
  • WebFilter/Interceptor Chaining
    • Explore 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 WebFlux
    • Leverage 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 Clients
    • Learn to use WebClient to build reactive clients that consume external APIs using reactive streams and handle asynchronous responses efficiently in a non-blocking manner.
  • Streaming
    • Implement 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 Performance
    • Gzip compression
    • HTTP connection pooling to optimize bandwidth usage and application scalability.
    • Leveraging HTTP/2 protocol for efficient communication (New!).

Integration Testing

Master integration testing with WebTestClient, combining testing practices into our learning process throughout the course.

Course Structure

  • Focus 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.

Note

A basic understanding of reactive programming is assumed as a prerequisite for this course.

spring-webflux-course's People

Contributors

vinsguru avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.