Spring 5.0 Projects
上QQ阅读APP看书,第一时间看更新

Building a Reactive Web Application

We began our journey by exploring some of the basics of the Spring Framework and its module system in Chapter 1Creating an Application to List World Countries with their GDP. Let's leave all the new and advanced topics of Spring Framework for now and, in this chapter, look at one of the most popular topics: how to make highly scalable and responsive applications by adopting a reactive paradigm. 

The world of technology is migrating from blocking, synchronous, and thread-driven implementation to non-blocking, asynchronous, and event-based systems, which are resilient and capable of managing a very large volume of data with a consistent response time. This is the core concern addressed by a reactive system.

From the perspective of the programming model, Reactive Programming has influenced the paradigm shift from an imperative style to a declarative composition of asynchronous logic. Spring Framework did this by incorporating Reactive Streams capabilities into its core framework from version 5.

In this chapter, we will discuss and explore Reactive Programming from various dimensions and angles with the following exciting topics:

  • What is a reactive system
  • Introduction to Reactive programming
  • Reactive Programming basics, benefits, and features
  • Reactive Programming in Java
  • Introduction to WebFlux
  • Spring supports for Reactive Programming
  • A functional way of working in Reactive Programming with WebFlux 
  • WebSocket support in a reactive paradigm