# Deployment View

**In short:** The deployment view shows which hardware and environments run the system's building blocks. arc42 documents it because infrastructure affects the system, and it suggests UML deployment diagrams.

## Explanation

A deployment view describes the infrastructure under your system. It shows which building blocks run on which hardware. arc42 covers it in chapter 7, the Deployment View.

**Why document it.** The infrastructure under a system can influence the system. It can also influence its cross-cutting concepts. These are ideas that apply across many parts of the system (see the article Crosscutting Concept). Because of this influence, the infrastructure needs documentation.

**How to express it.** arc42 suggests UML deployment diagrams. UML is a standard modeling language. See the article UML Deployment Diagram for the notation.

**The mapping.** arc42 tip 7-5 says to document the mapping of building blocks onto hardware. A building block is a part of the system, such as a service or a database. The mapping states where each one runs.

**Several environments.** Some systems run in more than one environment. In that case, arc42 advises documenting all relevant environments.

**Infrastructure nodes.** The C4 model has a similar deployment diagram. It can show infrastructure nodes next to deployment nodes. Examples are DNS services, load balancers and firewalls. A load balancer spreads incoming requests across several servers (see the article Load Balancer).

## Example

A team builds an online shop. Its deployment diagram shows a web server node running the shop application and a database node running the order database. A load balancer and a firewall sit in front of the web server. The team draws a second diagram for the test environment, which is set up differently.

## Trade-offs

The verified facts name no explicit trade-offs. One practical consequence follows from arc42's advice: every additional environment you document means more deployment content to write and keep current.

A generic deployment diagram: building blocks mapped onto nodes.

```plantuml
@startuml
node "Load Balancer" as lb
node "Web Server" as web {
  artifact "shop-app"
}
node "Database Server" as db {
  artifact "order-db"
}
lb --> web
web --> db
@enduml
```

## Checks

- The document maps building blocks onto hardware.
- If the system runs in several environments, each relevant environment is documented.
- The deployment view uses a UML deployment diagram.
- The document explains how the infrastructure influences the system or its cross-cutting concepts.

## Related

- [UML Deployment Diagram](https://arc.fuet.ch/concepts/modeling-uml/deployment-diagram.md)
- [arc42 Architecture Documentation Template](https://arc.fuet.ch/concepts/documentation/arc42-documentation-template.md)
- [Crosscutting Concept](https://arc.fuet.ch/concepts/documentation/arc42-crosscutting-concepts.md)
- [C4 Model](https://arc.fuet.ch/concepts/documentation/c4-model.md)
- [Load Balancer](https://arc.fuet.ch/concepts/tactics/load-balancer.md)
- [4+1 View Model](https://arc.fuet.ch/concepts/documentation/4-1-view-model.md)
- [Deployment Diagram Modeling Mistake](https://arc.fuet.ch/concepts/modeling-uml/deployment-diagram-modeling-mistakes.md)
- [Distribution View Antipatterns](https://arc.fuet.ch/concepts/documentation/distribution-view-antipatterns.md)

## Sources

- [7 - Deployment view | arc42 Documentation](https://docs.arc42.org/section-7/) — docs.arc42.org, accessed 2026-11-09
- [Deployment diagram | C4 model](https://c4model.com/diagrams/deployment) — c4model.com, accessed 2026-11-09
