August 1, 2014
There’s a wealth of knowledge at our disposal gained over decades of research in computing. Reactive programming is an attempt to capture that knowledge in order to apply it to a new generation of software.
The main selling feature of Java was the ability to “write once, run anywhere”, but anywhere was in the context of which operating system the JVM was installed on, not concepts like the cloud or the massive number of concurrent connections that we’re designing for in the age of the Internet of Things.
In this article we discuss the four principles of reactive software development: responsiveness, resilience, elasticity, and messages. We frame how to apply these principles to software development and architecture, regardless of tool or framework, to build indestructable systems.