Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Clement Escoffier, Ken Finnigan

Rating No ratings yet

Reactive systems and event-driven architecture are becoming indispensable to application design, and companies are taking note. Reactive systems ensure that applications are responsive, resilient, and elastic no matter what failures or errors may be occurring, while event-driven architecture offers a flexible and composable option for distributed systems. This practical book helps Java developers bring these approaches together using Quarkus 2.x, the Kubernetes-native Java framework. Clement Escoffier and Ken Finnigan show you how to take advantage of event-driven and reactive principles to build robust distributed systems, reducing latency and increasing throughput, particularly in microservices and serverless applications. You'll also get a foundation in Quarkus to help you create true Kubernetes-native applications for the cloud. • Understand the fundamentals of reactive systems and event-driven architecture • Learn how to use Quarkus to build reactive applications • Combine Quarkus with Apache Kafka or AMQP to build reactive systems • Develop microservices that utilize messages with Quarkus for use in event-driven architectures • Learn how to integrate external messaging systems, such as Apache Kafka, with Quarkus • Build applications with Quarkus using reactive systems and reactive programming concepts Three distinct groups can benefit from this book: • Developers who are building cloud native applications or distributed systems • Architects seeking to understand the role of reactive and event-driven architectures • Curious developers who have heard about Reactive and want a better understanding of it With this book, you will start a journey toward understanding, designing, building, and implementing reactive architectures. You will not only learn how it helps to build better distributed systems and cloud applications, but also see how you can use reactive patterns to improve existing systems.

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
【One-Line Pitch】 A practical guide for Java developers and architects who want to build responsive, resilient, cloud-native systems by combining reactive principles, event-driven architecture, and Quarkus 2.x. It bridges theory and hands-on implementation, showing how to reduce latency and increase throughput in microservices and serverless applications. 【Book Arc】 - **Opening (~0%–10%)**: Introduces what reactive systems and event-driven architecture mean, why they matter for cloud-native and distributed applications, and who benefits from the book. Establishes the conceptual vocabulary and the role of Quarkus as a Kubernetes-native Java stack. - **Early (~10%–35%)**: Grounds readers in Quarkus fundamentals — its build-time augmentation model, memory and startup advantages over traditional frameworks, native compilation, and basic deployment to Kubernetes. Also begins defining reactive software as reacting to stimuli such as user events, requests, and failures. - **Middle (~35%–55%)**: Examines the realities of distributed systems: remote calls are orders of magnitude slower than local calls, transparency is a lie, and containers/Kubernetes introduce shared-resource constraints. Frames why asynchronous, event-driven approaches are necessary rather than optional. - **Late (~55%–80%)**: Moves into Quarkus's reactive engine, the Mutiny event-driven reactive programming API (Uni and Multi), reactive HTTP with RESTEasy Reactive, streaming data, failure recovery, and combining/joining asynchronous items. - **Ending (~80%–100%)**: Applies reactive and event-driven patterns to real systems — integrating messaging systems such as Apache Kafka or AMQP, building message-driven microservices, and using reactive patterns to improve existing architectures. (Excerpts do not cover the final chapters in detail.) 【Key Takeaways】 - **Reactive is more than non-blocking I/O** (Early): It is a design approach for building responsive, resilient, and elastic applications through events and flows, not just a programming technique. - **Quarkus is a reactive stack at its core** (Early): Its build-time augmentation, fast startup, low memory footprint, and native compilation make it suited for containers and Kubernetes, where resource efficiency directly affects deployment density and cost. - **Distributed computing breaks naive assumptions** (Middle): Remote calls are far slower than local calls, cross process and network boundaries, and require explicit protocols; treating remote interactions as transparent leads to fragile systems. - **Containers and Kubernetes change the design constraints** (Middle): Shared CPU and memory mean greedy applications penalize neighbors; Kubernetes-native features like service discovery and health checks are essential for reactive behavior. - **Mutiny provides a focused reactive API** (Late): Uni and Multi model asynchronous event streams, with operators for observing, transforming, chaining, recovering from failure, combining, selecting, and collecting items. - **Reactive HTTP improves request handling** (Late): RESTEasy Reactive supports asynchronous endpoints returning Uni, custom failure responses, and streaming data, aligning HTTP handling with reactive principles. - **Event-driven architecture enables flexible composition** (Late): Messaging systems like Kafka and AMQP let microservices communicate through events, supporting decoupling and resilience in distributed systems. - **Reactive patterns can improve existing systems** (Ending): The book frames reactive not only as greenfield architecture but as a way to evolve and harden current applications. 【Reading Tips】 - **Deep-read the early Quarkus chapters** if you are new to Quarkus; the build-time model and native compilation details underpin later reactive behavior. - **Skim the distributed systems pain points** if you already understand remote call latency and container resource sharing, but return to them when designing failure handling. - **Practice with Mutiny and RESTEasy Reactive** — the operators and streaming examples are where reactive concepts become concrete; run the code rather than only reading it. - **Treat the Kafka/AMQP integration chapters as architecture guidance**, not just API tutorials; focus on how event-driven composition changes service boundaries and failure modes. - **Keep the book's definition of reactive in mind**: reacting to stimuli, including failures, is the thread that connects every chapter. 【Coverage Limits】 This guide is synthesized from stratified excerpts covering roughly the first half to two-thirds of the book; later chapters on Kafka/AMQP integration and advanced reactive patterns are referenced but not detailed in the source material.
Page 16
esigning, building, and implementing reactive architectures. You will not only learn how it helps to build better distributed systems and cloud applications,...
View in text
Excerpt 2
re information, visit http://oreilly.com. How to Contact Us Please address comments and questions concerning this book to the publisher: O’Reilly Media, Inc....
View in text
Excerpt 3
ding features. When there’s any type of configuration to be parsed or annotations to be discovered, framework classes are required to perform this work. Depe...
View in text
Excerpt 4
of view. You can wrap almost any application in a container. But it may not be a good idea. When running in a container, your application lives in a shared e...
View in text
Excerpt 5
or would force you to handle redirections. Time Decoupling Location transparency is not the only benefit. Asynchronous message passing also enables time deco...
View in text
Excerpt 6
ider a stream as only internal to the reactive applications. These streams are sequences of events ordered in time. The order matters. You observe them in th...
View in text
Excerpt 7
ntioned before, the Quarkus reactive engine utilizes Vert.x. In addition to Vert.x, as well as Netty, the routing layer of Quarkus forms the outer layer of t...
View in text
Excerpt 8
application we used in Chapter 2, the requests were always dispatched on a worker thread, avoiding any risk of blocking. It was not ideal in terms of reactiv...
View in text
Tags
AI categories
JavaCloud NativeBackend
ISBN: 1492091723
Publisher: O'Reilly Media
Publish Year: 2022
Language: English
Pages: 299
File Format: PDF
File Size: 12.3 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…