Most Internet and Enterprise systems require N-9s availability, for N >= 5. These systems often have tight responsiveness requirements, too. Meeting such requirements isn't a new problem, but the requirements have grown tighter and more pervasive over time. Even systems with relatively modest requirements can benefit from the techniques used in such systems.
The Reactive Manifesto (http://reactivemanifesto.org) was created by several leaders in the fields of distributed systems and high-performance computing to codify several core traits that are universally essential for such Reactive systems. The Manifesto has been refined since it was introduced, in response to feedback from many people.
The traits are the following:
Responsive: Response times for requests are consistent, satisfying quality of service requirements. Implicit in this trait is the need to recover from errors in a timely manner.
Resilient: The system stays responsive in the presence of failure.
Elastic: The system stays responsive under various workloads.
Message Driven: The system components communicate through messages, which promotes optimal resource utilization (no blocking threads) and decoupling of components for better resiliency.
I'll describe how the four traits impact system architectures, without being overly prescriptive.
None of them is new, but many systems that claim to be reactive fall short in one or more of these areas.
We'll examine several representative examples to understand how the traits are realized in practice.
Dean Wampler, Ph.D., is the Architect for Big Data Products and Services for Typesafe. He builds scalable, distributed applications using Spark, Hadoop, Mesos, Scala, and the Typesafe Reactive Platform. He is the author or co-author of several books for O'Reilly, Programming Scala, Programming Hive, and Functional Programming for Java Developers. Dean is a contributor to several open source projects and he co-organizes several technology conferences and the Chicago-based user groups for Scala and Spark. On Twitter: @deanwampler.