Architecture Patterns / Styles Categories:
Service-Oriented Architecture (SOA)
- Refers to applications that expose and consume functionality as a service using contracts and messages.
An architecture style that prescribes the use of a software system that can receive and send messages using one or more communication channels, so that applications can interact without needing to know specific details about each other.
Client / Server
- Segregates the system into two applications, where the client makes requests to the server. In many cases, the server is a database with application logic represented as stored procedures.
3-Tier / N-Tier
- Segregates functionality into separate segments (3 or more) in much the same way as the layered style, but with each segment being a tier located on a physically separate computer.
Domain Driven Design
- An object-oriented architectural style focused on modeling a business domain and defining business objects based on entities within the business domain.
- Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
- A design paradigm based on the division of responsibilities for an application or system into individual reusable and self-sufficient objects, each containing the data and the behavior relevant to the object.
- Partitions the concerns of the application into stacked groups (layers).
- Microservices architecture style