What is Architecture Diagramming? – Software & System Architecture Diagramming Explained – AWS

Software architecture patterns are design principles and best practices used to develop software systems. They provide a framework to structure the software and address specific challenges in complex software architectures.

Here are some of the most commonly used software architecture patterns.

Client-server architecture

Client-server architecture is a distributed application structure that separates tasks and workloads between servers and clients. Servers provide the resource or service, and clients request it.

The client and server are separate programs that communicate over a network. A web browser and web server are an example of client-server architecture. It’s a commonly used architecture in distributed computing. 

Read about distributed computing »

Service-oriented architecture

Service-oriented architecture allow for interaction between distributed application components through services. Services are abstract, loosely coupled, and language-independent. Applications access them through interfaces. Developers can reuse existing services rather than having to rebuild from scratch. Service-oriented architecture is widely used in distributed systems, as services can be deployed across multiple servers.

Read about service-oriented architecture »

Microservices architecture

Service-oriented architecture has evolved further, so developers use microservices architecture to build, deploy, and manage individual services. Applications are split into independently deployable services that communicate through APIs.

Smaller, independent services make it simpler for developers to develop, test, and deploy applications and deliver improved fault tolerances and rapid scaling. An example of a microservices architecture is a web application consisting of several independent services, each responsible for specific tasks. 

Read about microservices »

Read about APIs »

Read about web applications »

Cloud-centered architecture

Cloud-centered architecture is used to design and build applications for cloud environments. Cloud-centered architecture is built and delivered with cloud-specific technologies such as containers, microservices, DevOps, and serverless computing. It prioritizes automated deployment and management so that applications can be scaled up and down as needed.

Read about containerization »

Read about DevOps »

Read about serverless architectures »

Event-driven architecture

Event-driven architecture is software architecture based on the production, detection, and consumption of events. User interactions, background tasks, and other sources trigger events that further trigger other functionality. The event-driven architecture allows applications to be more responsive to changes in a software system and its environment.

Layered architecture

Layered architecture is a software architecture pattern that separates applications into logic-based layers. This type of architecture is designed to simplify complex applications and systems, as you can split tasks between layers.

Layers are organized from top to bottom:

  • A presentation layer (for example, a UI) is at the top
  • A business layer is in the middle
  • A data layer is at the bottom

Layers can also be structured hierarchically, which aids maintenance and scalability.