Businesses evolve as they grow, where applications not only scale to handle an increased user base but also keep adding more features to stay ahead and get a competitive edge. A solution design needs to be extendable and flexible enough to modify an existing feature or add new functionality. To modularize their application, often organizations want to build a platform with a group of features and launch them as separate applications. This is only possible with reusable design.
To achieve solution extensibility, a solution architect needs to use a loosely coupled architecture wherever possible. At a high level, creating a RESTful-based or queue-based architecture can help develop loosely coupled communication between different modules or across applications. You will learn more about the other kinds of architecture in Chapter 6, Solution Architecture Design Patterns. In this section, we will take a simple example to explain the concept of architecture flexibility...