Introduction to the Full Reactive Stack

Get introduced to the full reactive stack that you will be learning to build throughout this course.

Full reactive stack

This course focuses on how to create a Reactive Web Application, supported by a code example that you can build step by step, with Spring WebFlux and Spring Boot 2.

To avoid unrealistic examples in which Spring is also the client of the Reactive API, you will complete the stack with a client application in Angular 9. To make it reactive, you’ll use Server-Sent Events (SSE) to establish communication between the backend and frontend. See the figure below for a quick look at the stack we’ll build.

Course structure

This course has four main chapters and an appendix:

  1. The reactive web

    This chapter guides you through the main concepts of a reactive approach and compares it to classic web interfaces.

  2. The backend

    This chapter covers the creation of the Spring Boot application using the required dependencies and the development of the backend layers, paying special attention to the Controllers with WebFlux and the MongoDB reactive driver.

  3. The frontend

    This chapter goes through the development of an Angular application that consumes the reactive endpoint created on the server’s side.

  4. Conclusion

    This chapter completes the guide, summarizing what you’ve built and comparing the reactive web approach with the classic web approach. It gives some insights on performance, testability, etc.

  5. Appendix

    This appendix will help you build and run the full stack application in Docker.

All the source code (Spring Boot, Angular and Docker) is available on GitHub: Full-Reactive Stack repository. If you find it useful, give it a star!

Selected technology

The goal of this course is to learn reactive web development by building an application from scratch (or navigating through the code if you prefer that). The chosen technologies are as follows:

  • Spring Boot 2.3
  • Spring WebFlux (also Spring Web to compare).
  • Spring Data JPA Reactive Repositories
  • Angular 9
  • RxJS
  • EventSource API