Part 3 Cloud native distributed systems

 

Cloud native applications are highly distributed and scalable systems by definition. So far, we have worked with a single application. It’s time to broaden our horizons and address patterns, challenges, and technologies for building distributed systems in the cloud. Part 3 covers fundamental properties of cloud native systems, such as resilience, scalability, and security. It also describes reactive programming and event-driven architectures.

Chapter 8 introduces reactive programming and the main features of the Spring reactive stack, including Project Reactor, Spring WebFlux, and Spring Data R2DBC. Chapter 9 covers the API gateway pattern and how to build edge services with Spring Cloud Gateway. You’ll learn how to build resilient applications with Reactor, Spring Cloud, and Resilience4J, using patterns like retries, timeouts, fallbacks, circuit breakers, and rate limiters. Chapter 10 describes event-driven architectures and teaches you how to implement them with Spring Cloud Function, Spring Cloud Stream, and RabbitMQ. Security is a critical concern for all cloud native applications, and chapters 11 and 12 are all about security. You’ll learn how to implement authentication and authorization using Spring Security, OAuth2, and OpenID Connect. You’ll also see a few techniques for protecting APIs and data, including when single-page applications are part of the system.