Software Architecture Patterns

This page consists of all the common software architecture patterns found as of 2023

Client-Server pattern

In the client-server architecture patterns, there are two main components: The client, which is the service requester, and the server, which is the service provider. Although both client and server may be located within the same system, they often communicate over a network on separate hardware. The client component initiates certain interactions with the server to generate

Client-Server pattern Read More »

CQRS

The Command Query Responsibility Segregation (CQRS) pattern separates a service’s write tasks from its read tasks. While reading and writing to the same database is acceptable for small applications, distributed applications operating at web-scale require a segmented approach. Typically there’s more read activity than write activity. Also, read activity is immutable. Thus, replicas dedicated to reading data can be spread out over

CQRS Read More »

Controller – Responder pattern

This was often referred to as the master/slave architecture pattern, but because it is not a useful metaphor, some engineers and software companies have adopted replacement terms such as primary/secondary, primary/replica, parent/helper, master/replica or the controller/responder pattern. Most notably, the IEEE has adopted this as a better term for network technology. Like the client-server architecture pattern, this pattern consists

Controller – Responder pattern Read More »

MVC Pattern

The model-view-controller (MVC) pattern divides an application into three components: A model, a view, and a controller. The model, which is the central component of the pattern, contains the application data and core functionality. It is the dynamic data structure of the software application, and it controls the data and logic of the application. However, it does not

MVC Pattern Read More »

Microservices Pattern

The microservices pattern involves creating multiple applications—or microservices—that can work interdependently. Although each microservice can be developed and deployed independently, its functionality is interwoven with other microservices. A key concept in the microservices pattern is the separate deployment of units. This creates a streamlined delivery pipeline that allows for easy deployment of microservices and increases application

Microservices Pattern Read More »