← Glossary

Software architecture

System architecture

System architecture is the high-level structure of a whole system: its components, how they interact, where they run and the qualities it has to meet.

System architecture of a logistics platform: users, an edge with WAF and API gateway, application services, data stores, an integration layer to external providers and an operations band
The system architecture of a logistics platform. Users enter through the edge, services own the data, an integration layer isolates external systems and operations spans every tier.

Teams write down a system architecture so that everyone building, running and paying for a system agrees on what it is. Once the structure is explicit, every later decision, from database choice to incident ownership, has something to be checked against.

What does system architecture include?

  • Components. The major parts: applications, services, data stores, queues and the external systems the system depends on.
  • Interactions. Which components talk to which, over what protocol and in which direction.
  • Deployment. Where each component runs: devices, regions, clusters, managed services.
  • Boundaries. Trust boundaries, network zones, team ownership and the edge of the system.
  • Quality attributes. The measurable properties the structure is meant to deliver, and the trade-offs made between them.
  • Decisions. Why the structure is the way it is, recorded as architecture decision records.

A system architecture names which architecture patterns the system uses and where: three-tier at the deployment level, say, with microservices or a monolith inside the application tier and MVC inside a web service.

How do you read a system architecture diagram?

Start with the users and follow the arrows. In the logistics platform at the top of this page, the clients of this client-server system are shippers, drivers and warehouse staff, who all enter through the edge: a web application firewall and CDN for the portal and an API gateway for every API call. The gateway routes to three application services that own shipments, routing and tracking.

Each service owns a data store. The shipment service writes PostgreSQL, routing writes route files to object storage and tracking publishes location events to Kafka, which streams into the analytics warehouse. External systems sit on the right and are reached only through the integration layer, so a change to a carrier’s API touches one adapter rather than every service. Carrier webhooks come back in through the gateway. The operations band holds monitoring, logging, CI/CD and secrets, which every tier uses and no tier owns.

What are architecture views and viewpoints?

Four views of one logistics system: logical components, a process sequence, a deployment region with a cluster and a data view of stores and their owners
Four views of the same system. Each answers a different question for a different reader.

No single diagram can show a system to every reader. A view is one diagram that answers one set of questions. A viewpoint is the convention for drawing that kind of view: its elements, notation and audience. ISO 42010 formalizes the terms, and Kruchten’s 4+1 model is the best-known set of views.

ViewQuestion it answersTypical diagramReader
LogicalWhat are the parts and how do they relate?Component diagram, C4 container diagramEngineers, architects
ProcessHow does work flow at runtime?Sequence diagram, data flow diagramEngineers, performance reviewers
DeploymentWhere does each part run?Deployment diagramOperations, security
DataWhat is stored and who owns it?Entity-relationship diagram, ownership tableData engineers, compliance

The C4 model is a practical viewpoint for the logical view at four levels of zoom, starting with a context diagram. Pick the views the system’s readers need and keep the same component named the same way in every view.

What are quality attributes?

Quality attributes are the measurable properties a structure is chosen to deliver: availability, performance, scalability, security, maintainability, observability, cost and compliance. An architecture is good or bad only relative to the attributes it targets.

Attributes trade against each other. Caching improves performance and complicates consistency. Splitting services improves deployability and hurts debuggability. The architecture should say which attributes win and the decision records should say why.

How does system architecture compare with system design and software design?

TermScopeOutput
System designThe activity of choosing a structure for given requirementsTrade-off analysis, candidate designs, decisions
System architectureThe structure chosen, including hardware, networks and external systemsViews, diagrams, decision records
Software architectureThe software part of the system architectureService and module structure, interfaces
Software designThe structure inside one componentClass diagrams and interfaces
Solution architectureHow several systems combine to solve one business problemIntegration diagrams, product choices

How do you define a system architecture?

  1. Write down the quality attributes. Pick the few that matter, with numbers: 99.9% availability, under 300 ms for a tracking lookup, data resident in one region.
  2. Draw the context. The system as one box, its users and the external systems it depends on. This fixes the boundary.
  3. Identify the components. Split the system by what changes together and is owned together.
  4. Define the interactions. For every connection, name the protocol, the direction and what happens when the other side is down.
  5. Place the components. Decide where each runs and draw the deployment view.
  6. Check against the attributes. Walk a failure, a traffic spike and a security review through the diagrams.
  7. Record the decisions and keep the views current. Store the diagrams with the code, ideally as diagram as code.

What are common system architecture mistakes?

  • One giant architecture diagram. Everything on a single page serves no reader. Split into views.
  • No quality attributes. Without targets, every design is defensible and none can be checked.
  • Hidden external dependencies. The payment provider is part of the system’s availability whether it is drawn or not.
  • Forgetting operations. Monitoring, deployment pipelines and secrets are components too, and they fail.
  • No decision records. A diagram tells the next team what, but never why.

What tools can you use to document system architecture?

  • Modeling tools. Tools built on ArchiMate or SysML hold one model and generate every view from it, at the cost of a steeper learning curve.
  • Diagram-as-code tools. Text descriptions of each view, kept in the repository and reviewed in pull requests. See the best diagram-as-code tools for a comparison.
  • AI diagramming tools. Tools like Eraser turn a description of your system, a design document or infrastructure code into a system architecture diagram you can keep editing, which makes several views practical to maintain.

For more on this kind of diagram, see architecture diagrams.

Frequently asked questions

  • What is the difference between system architecture and system design?

    System architecture is the result: the structure of the system, its components, their interactions and the qualities it meets. System design is the activity of arriving at that structure, from requirements through trade-offs to decisions. In a design document, the architecture is the section that describes the system as built.

  • What is the difference between system architecture and software architecture?

    Software architecture covers the software: services, modules, data stores and the interfaces between them. System architecture is wider and includes the hardware, networks, external systems and operational tooling the software depends on. A hospital platform's system architecture includes the lab analyzers. Its software architecture does not.

  • What should a system architecture document contain?

    A context diagram of the system and its neighbors, the main components and how they interact, where each runs, the data and who owns it, the quality attributes the design targets and the decisions made to meet them, usually as architecture decision records. Several short views beat one enormous diagram.

  • What is a quality attribute?

    A quality attribute is a measurable property of a system other than its features: availability, performance, scalability, security, maintainability, cost and so on. Architecture is largely the business of trading quality attributes against each other, because a design that improves one usually costs another.

Turn a description of your system into a system architecture diagram.