Software architecture models as code

Structurizr builds upon "diagrams as code", allowing you to create multiple software architecture diagrams from a single model. There are a number of tools for creating Structurizr compatible workspaces, with the Structurizr DSL being the recommended option for most teams. This Structurizr DSL example creates two diagrams, based upon a single set of elements and relationships.

workspace "Name" "Description"

    !identifiers hierarchical

    model {
        u = person "User"
        ss = softwareSystem "Software System" {
            wa = container "Web Application"
            db = container "Database Schema" {
                tags "Database"
            }
        }

        u -> ss "Uses"
        u -> ss.wa "Uses"
        ss.wa -> ss.db "Reads from and writes to"
    }

    views {
        systemContext ss "Diagram1" {
            include *
            autolayout lr
        }

        container ss "Diagram2" {
            include *
            autolayout lr
        }

        // styling...
    }

}

Designed for the C4 model

Structurizr is specifically designed to support the C4 model for visualising software architecture, by its creator Simon Brown. Diagrams are interactive (e.g. zoom in/out), animatable, embeddable, and include an automatically generated diagram key/legend.


System Landscape diagram

System Landscape diagram

System Landscape diagram key

System Context diagram

System Context diagram

System Context diagram key

Container diagram

Container diagram

Container diagram key

Component diagram

Component diagram

Component diagram key

Dynamic diagram

Dynamic diagram

Dynamic diagram key

Deployment diagram

Deployment diagram

Deployment diagram key

Diagram your cloud architecture

Use themes to help document your cloud architecture; with prebuilt themes for Amazon Web Services, Microsoft Azure, Google Cloud Platform, Oracle Cloud Infrastructure, and Kubernetes.

Reverse-engineer your Java apps

Use Structurizr's component finder to help reverse-engineer component diagrams from your Java applications.

Component finder

Alternative visualisations

Explore your software architecture with alternative visualisations, including tree views and interactive force-directed graphs.

Explore
Explore

Documentation

Publish supplementary documentation (e.g. a "software guidebook", arc42, etc) using Markdown or AsciiDoc.

Documentation
Documentation

Architecture decision records (ADRs)

Publish architecture decision records (ADRs) that capture your significant design decisions.

Architecture decision records (ADRs)
Architecture decision records (ADRs)