Software architecture is founded on key principles. Principles (made up of name, statement, rationale and implications) are then translated or mapped into key architectural patterns and qualified amongst a number of criteria (robustness, completeness, consistency and stableness to name a few) to justify its quality.
A lot of attention and hype is on the use of microservices architecturally and its implementation with more cutting edge technologies is becoming more and more popular with modern software stacks. Why is this appealing now? Have we not come across this before but failed to give it full attention cause we couldn’t realise its benefit.
The release of the Reactive Manifesto in 2013 has popularized the term “reactive applications”. The purpose of the manifesto is to describe a new approach to systems architecture and the key characteristics that these systems will need to implement. Why would we need a new approach to systems? A few years ago a large application would typically consist of tens of servers, response times of a few seconds, gigabytes of data and downtime was a generally accepted norm. Today this has changed dramatically. Applications now span hundreds of servers, are dependent on many other systems, response times need to typically be sub second, terabytes of data and 100% up-time. This is further compounded by the fact that organisations are becoming more transparent by allowing customers direct views of internal processes via the web and mobile devices. The organizations that can adapt to this new playing field are the ones that can set themselves up for success tomorrow.
The Reactive manifesto takes many patterns and concepts and packages them together to form a cohesive set of terms and concepts. These together are termed reactive applications. Version one of the reactive manifesto addresses four design characteristics of responsive applications.