Evolution of solution architecture

Solution architecture has evolved with technological modernization. Today, solution architecture design has changed drastically compared to a couple of decades ago, due to the increasing use of the internet, the availability of high-bandwidth network, the low cost of storage, and computer availability.

Back in the days before the era of the internet, most solution designs focused on providing a thick desktop client, which was capable of operating with low bandwidth and working offline when a system could not connect to the internet.

This technology started evolving in the last decade. Service-oriented architecture (SOA) started taking shape for distributed design, and applications started moving from monolithic to modern n-tier architecture, where the frontend server, application server, and database were live in their computer and the storage layer. These SOAs are mostly achieved by an XML-based messaging protocol, called Simple Object Access Protocol (SOAP). This majorly follows a clientserver model in order to create services.

In this age of digitization, you will see microservice-based solution design becoming increasingly popular, which is based on JavaScript Object Notation (JSON)-based messaging and the Representational State Transfer (REST) service. These are Web APIs, which do not require XML-based web service protocols (SOAPs) to support their interfaces. They rely on web-based HTTP protocols such as POST, GET, UPDATE, DELETE, and so on. You will learn more about different architecture patterns in great detail in Chapter 6, Solution Architecture Design Patterns.

The microservice architecture addresses the need for changing requirements in an agile environment, where any solution changes need to be accommodated and deployed rapidly. Organizations have to be agile to stay ahead of the competition. This forces solution architecture to be flexible, compared to the waterfall model, where you have a long cycle of project release.

The web-based microservice architecture is fueled by an almost unlimited resource capability, which is available from cloud providers and which can scale in minutes or seconds. It's becoming easier to innovate, experiment, and change as solution architects and developers can risk failing without harming anything.