Software Architecture, Design Principles.
In essence, these architectures are made up of loosely coupled, interchangeable, and reusable components that can be selected and assembled in various combinations to meet specific application requirements. Think of it as using Lego blocks. You can connect them to build anything from simple houses