Ken Finnigan, Clement Escoffier - Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus (2021)

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
7,771
Реакции
1,451
Credits
25,339
Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus
Авторы: Ken Finnigan, Clement Escoffier (2021)
front.jpg
In the IT world, the limits of today are the gateways of tomorrow. In the last 50 years, the IT world has continuously evolved, tirelessly, always pushing the limits. These changes are due to not only technical progress, but also us, the consumers. As consumers, we continue to demand more and more from the software we interact with every day. In addition, our way of interacting with software has entirely changed. We can’t live without mobile applications and devices and now accept receiving notifications all day long. The Internet of Things (IoT) is an emerging market promising many more innovations, increasing the number of events and data processed uninterruptedly. The cloud and Kubernetes have not only changed our usage but also radically transformed the way we design, develop, deploy, and maintain applications. But don’t be mistaken; all these revolutions come with a price. While they have enabled new uses and applications, they have also introduced massive complexity. Most software systems today are distributed systems. And distributed systems are hard to design, build, and operate, especially on the scale we need to implement these new modern applications. We need to handle failures, asynchronous communication, an ever-changing topology, the dynamic availability of resources, and so on. While the cloud promises unlimited resources, money is a limiting factor, and increasing the deployment density, meaning running more on fewer resources, becomes a stringent concern. So, what about Reactive? It is not a library you use in your code or a magic framework. Reactive is a set of principles, tools, methodologies, and frameworks that lead to building better distributed systems. How much better? It depends on the system, but applications following the Reactive principles embrace distributed systems’ challenges and focus on elasticity, resilience, and responsiveness, as explained in The Reactive Manifesto. In this book, we use the noun Reactive, with an uppercase R, to aggregate all the various facets of the reactive landscape, such as reactive programming, reactive systems, reactive streams, and so on. With this book, you’ll learn how Reactive will help us face these new concerns and how it fits in cloud environments. After reading this book, you will be able to build reactive systems—resilient, adaptable, event-driven distributed systems.
Who Should Read This Book?
This book targets intermediate and advanced Java developers. It would be best if you were reasonably comfortable with Java; however, prior knowledge of reactive programming or even Reactive in general are not required. Many concepts in this book relate to distributed systems, but you do not need to be familiar with them either. Reactive systems often rely on message brokers such as Apache Kafka or Advanced Message Queuing Protocol (AMQP). This book introduces the basic knowledge you need to understand how such brokers help in designing and implementing reactive systems. 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 eventdriven 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.
What About Quarkus?
Attentive readers would have noticed the mention of Quarkus in the subtitle of this book. But, so far, we haven’t mentioned it. Quarkus is a Java stack tailored for the cloud. It uses build-time techniques to reduce the amount of memory used by the application and provide a fast startup time. But Quarkus is also a reactive stack. At its core, a reactive engine enables the creation of concurrent and resilient applications. Quarkus also provides all the features you need to build distributed systems that can adapt to fluctuating loads and inevitable failures. Throughout this book, we use Quarkus to demonstrate the benefits of the reactive approach and introduce various patterns and best practices. Don’t panic if you don’t have prior knowledge or experience with it. We will accompany you on the journey, guiding you at every step. This book focuses on creating reactive applications and systems that leverage Quarkus capabilities and provides all the knowledge required to build such systems. We do not cover the complete Quarkus ecosystem, as this book concentrates on the Quarkus components that help in the construction of reactive systems.