# Distribution View Antipatterns

**In short:** A deployment view shows how software maps onto hardware and infrastructure. Reviewers should check three things: the mapping, the environments covered, and whether infrastructure nodes appear.

## Explanation

The deployment view (also called the distribution view) answers one question: where does the software run? The article "Deployment View" explains the basics.

**Why the view exists.** The infrastructure under a system can influence the system. It can also influence cross-cutting concepts, which are rules that apply across many parts of the system (see "Crosscutting Concept"). The view makes that influence visible.

**Keep the mapping at the center.** arc42 advises documenting which building blocks run on which hardware or infrastructure. A building block is a part of the system, such as an application or a database. A diagram that does not show this mapping misses the purpose of the view.

**Show each environment.** Many systems run in more than one environment, such as production and staging. arc42 says to document all relevant environments. A diagram that shows only one, when several matter, leaves readers guessing about the others.

**Use the C4 convention as a guide.** A C4 deployment diagram covers one environment per diagram, for example production, staging, or development. C4 also lets you add infrastructure nodes such as DNS services, load balancers, and firewalls. See "C4 Model" and "Load Balancer" for more.

**What to ask in a review.** Does the diagram link building blocks to infrastructure? Does it cover every relevant environment? Is the infrastructure that shapes the system visible?

## Example

A team documents an online shop. Their first deployment diagram lists the shop's building blocks but never says where they run. The team revises it. They draw one diagram for production and one for staging. Each diagram links the building blocks to the machines they run on. The production diagram also shows the load balancer and the firewall in front of the shop.

## Trade-offs

One diagram per environment gives clear pictures but means more diagrams to maintain. Documenting only the relevant environments keeps the effort down, as arc42 suggests.



## Checks

- The deployment view documents which building blocks run on which hardware or infrastructure.
- All relevant environments are documented.
- Each deployment diagram covers a single environment, such as production or staging.
- Infrastructure nodes such as DNS, load balancers, and firewalls appear where they matter.

## Related

- [Deployment View](https://arc.fuet.ch/concepts/documentation/distribution-view.md)
- [Deployment Diagram Modeling Mistake](https://arc.fuet.ch/concepts/modeling-uml/deployment-diagram-modeling-mistakes.md)
- [UML Deployment Diagram](https://arc.fuet.ch/concepts/modeling-uml/deployment-diagram.md)
- [C4 Model](https://arc.fuet.ch/concepts/documentation/c4-model.md)
- [Crosscutting Concept](https://arc.fuet.ch/concepts/documentation/arc42-crosscutting-concepts.md)
- [Component View Antipattern: Lifting Code to Model Level](https://arc.fuet.ch/concepts/documentation/component-view-antipattern-lifting-code-to-model-level.md)
- [Context View Antipatterns](https://arc.fuet.ch/concepts/documentation/context-view-antipatterns.md)
- [Load Balancer](https://arc.fuet.ch/concepts/tactics/load-balancer.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
