/friendly-webflux-book

Source code for my Friendly Webflux book

Primary LanguageJava

Friendly Webflux: A Practical Guide to Reactive Programming with Spring Webflux

This repository contains source code examples for the book Friendly Webflux

Description

Reactive applications are built on four core principles: responsiveness, resilency, elasticity, message-driven communication. Spring Webflux is a new member of the Spring ecosystem, that allows to create reactive systems on top of Project Reactor and Netty server. It is suitable for a wide range of solutions, including classical monoliths, microservices or serverless business functions. This book takes great care in covering different aspects of web programming, including topics, such as unit and load testing, authentication and authorization (JWT, TOTP), databases. The "Friendly Webflux" book originated from the author's practical experience as a Java software engineer in various domains, including ERP, health care and MMO games. Finally, the book covers some important topics of frontend development and communication with Spring Webflux-based backend, such as authentication or caching. Frontend examples are implemented using Vue.js, yet they can be ported in an effortless way to React.js and Svelte.js.

Table of Contents:

Foreword

Acknowledgments

Chapter 1. An introduction to reactive programming with Project Reactor

Chapter 2. Your first Spring Webflux REST API

Chapter 3. Annotated controllers vs. router functions

Chapter 4. How to structure Spring Webflux applications

Chapter 5. Calling external APIs with WebClient

Chapter 6. Server-side validation with Yavi

Chapter 7. CORS handling

Chapter 8. Error handling

Chapter 9. Authentication patterns in Spring Webflux

Chapter 10. Unit testing in Spring Webflux

Chapter 11. Load testing

Chapter 12. Working with NoSQL databases

Chapter 13. Immutables and Spring Webflux

Chapter 14. Client side caching

About the author

The book targets intermediate Java software developers, who want to create reactive applications with Spring. A previous experience with the Spring Framework is not required.

Copyrights

2021 Iurii Mednikov (Yuri Mednikov) MIT License