Reduction of cost and time is one the major concerns in software development. Therefore, developing scalable architectures, which can efficiently accommodate evolving requirements to adapt to new environments, is worth future research. Current development approaches do not guarantee fully scalable architectures, due to their inability to detect and identify where and how new layers are to be added or incorporated to, or current layers are to be removed from the architecture being developed. In addition, there is a conceived shortage of the architectural points that will be used to connect/remove other architectures and applications. Consequently, these architectures might encounter or face a total collapse or a considerable increase in cost and time, when new changes are to be incurred to it. When businesses experience substantial increments in their services' demands, their main concern is their application architecture's ability to scale over time to assure a proper handling of these loads. The architecture is required to efficiently scale, and adapt in such manner that it will fit in both constrained and unconstrained environments, yet still being able to take full advantage of the available resources to improve its performance. There are multiple stages in the lifecycle of a software product. The development starts from the requirements analysis stage, moving on to the design, then coding, testing and then the final delivery, which may involve deployment and configuration of the means to deliver the software to its users, in the form of a final software system. This and the subsequent columns look at the definition of scalability from the perspective of software architectures.