Part 1. Introduction

Have you ever wondered how high-profile web applications are implemented? Social networks and huge retail sites must have some secret ingredient that makes them work quickly and reliably, but what is it? In this book, you will learn about the design principles and patterns behind such systems that never fail and are capable of serving the needs of billions of people. Although the systems you build may not have such ambitious requirements, the primary qualities are common:

  • You want your application to work reliably, even though parts (hardware or software) may fail.
  • You want it to keep working when you have more users to support, and you want to be able to add or remove resources to adapt its capacity to changing demand (capacity planning is hard to get right without a crystal ball).

In chapter 1, we will sketch the development of an application that exhibits these qualities and more. We will illustrate the challenges you will encounter and present solutions based on a concrete example—a hypothetical implementation of the Gmail service—but we will do so in a technology-agnostic fashion.

This use case sets the stage for the detailed discussion of the Reactive Manifesto that follows in chapter 2. The manifesto is written in a concise, high-level form in order to concentrate on its essence: the combination of individually useful program characteristics into a cohesive whole that is larger than the sum of its parts. We will show this by breaking the high-level traits into smaller pieces and explaining how everything fits back together.

We will complete this part of the book in chapter 3 with a whirlwind tour through the tools of the trade: functional programming, Futures and Promises, Communicating Sequential Processes (CSP), Observers and Observables (Reactive Extensions), and the Actor model.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.148.112.79