This book originated from my personal notes and case studies, where I documented my own solutions for problems, that I faced during my experience with Spring Webflux. I could consider myself as an evangelist of reactive programming paradigm, and I worked with Eclipse Vertx for many years (for instance, my another book is devoted to that framework). Certainly, when Spring Webflux came to the market, I was very curious to “have my hands dirty” and to try it in various applications. For a long time, I had a limited exposure to the Spring ecosystem, mainly due to its “heavy weight” and sticked to more unopinionated technologies. I was surprised to find out, that Spring Webflux did not only bring asynchronous programming model to the Spring universe, but it is also a fast and lightweight solution to serve as a foundation of modern scalable web systems, such as microservices.
I believe that a good piece of technical writing should unify both theoretical concepts and practical experience. With this book, I made an attempt to combine notes on reactive programming with Project Reactor (chapter 1), application architecture and design (chapters 3, 4, 13) with an overview of most crucial and used components of Spring Webflux. The book also includes instructions on software testing, authentication and authorization, working with a data layer. Finally, as a full stack software engineer myself, I feel, that it is important to include notes about client side development and how these apps can interact with systems, built with Spring Webflux. Frontend examples are created with Vue.js, however they are not tied to the particular framework and can be translated to React.js or Svelte.js.
The book is targeted for intermediate Java programmers, yet a previous experience with Spring framework is not required.
Do you want to know more about Spring 5 and Webflux?
Hope you enjoyed so far! If you are interested in developing reactive apps with Spring 5, Project Reactor and Spring Webflux, I recommend you to purchase my book “Friendly Webflux“.