Structural
Structural architecture in software refers to the organization and design of the components of a software system, and how they interact with each other. It deals with the physical organization of the system, and the relationships between the different components.
There are several different structural architecture patterns and styles that can be used to design software systems, including:
- Monolithic: where the system is built as a single, integrated, and self-contained unit.
- Layered: where the system is divided into a set of layers, each of which has a specific responsibility and communicates with the other layers through well-defined interfaces.
- Microservices: where the system is built as a collection of small, independent, and loosely-coupled services.
- Event-driven: where the system reacts to specific events that occur, rather than being continuously polled for changes.
- Client-Server: where a client sends requests to a server, and the server responds to those requests
- Peer-to-Peer: where each node in the network acts as both a client and a server
- Component-based: where the system is composed of reusable and independent software components
- Domain-Driven: where the system is organized around the core business domain and business entities.