Software Architecture

Software architecture is the software engineering practice of planning, organizing, and evolving the components of a system of applications for optimal interaction. What is "optimal" is determined by the requirements, constraints, and design goals of the system. Optimizations may include cost, flexibility, scalability, implementation timelines, and various business factors.

Deeper Knowledge on Software Architecture

Designing a Scalable White-Label SaaS Application

Designing a Scalable White-Label SaaS Application

Architectural considerations for building a white-labeled SaaS application

Conway's Law

Conway's Law

An observation on the coupling of an organizations structure to system design

Publish/Subscribe Pattern (Pub-sub)

Publish/Subscribe Pattern (Pub-sub)

A software engineering design pattern to separate responsibility between commands and queries

Command Query Responsibility Segregation (CQRS)

Command Query Responsibility Segregation (CQRS)

A software engineering design pattern to separate responsibility between commands and queries

Distributed Systems

Distributed Systems

Software systems distributed and coordinated over a network

Architectural Decision Records (ADRs)

Architectural Decision Records (ADRs)

A method for capturing architectural decisions

Microservices

Microservices

A software architecture in which applications are made up of loosely coupled services

Broader Topics Related to Software Architecture

Software Engineering

Software Engineering

Engineering approaches to software development

Software Architecture Knowledge Graph