Speaker Details

Simon Brown
Simon is an independent consultant specialising in software architecture. He is the author of “Software Architecture for Developers” (a developer-friendly guide to software architecture, technical leadership and the balance with agility), the creator of the C4 model for visualising software architecture, and the creator of the Structurizr tooling. Simon is a regular speaker at international software development conferences, and travels the world to help organisations visualise their software architecture.
C4 models as code
Conference (INTERMEDIATE level)
"Diagrams as code", as featured on the ThoughtWorks Tech Radar, is becoming a popular way to create software architecture diagrams for inclusion in long-lived documentation. The benefits of creating diagrams from text are well understood - text is version controllable, easy to diff, easy to integrate into build pipelines, and automatic layout facilities allow authors to focus on content. The majority of these tools (e.g. PlantUML and Mermaid) are focussed on diagramming though, and require you to create one text file per diagram, with only a limited ability to reuse diagram elements across multiple diagrams. At scale, this causes maintenance problems, and leads to inconsistencies between diagrams.
This talk will introduce and demonstrate the open source Structurizr DSL - a way to create a model of your software architecture using a textual DSL that's specifically targeted towards the C4 model. We'll also see how the DSL separates content from presentation, allowing you to render your diagrams with a number of tools, which in turn offers some answers for the tricky question of how to use the C4 model at scale.
More
This hands-on lab is a getting started guide to the free and open source Structurizr DSL - a way to diagram your software architecture using a textual DSL that's specifically targeted towards the C4 model. Topics we'll be covering include:
- A brief introduction to the C4 model for visualising software architecture.
- The drawbacks of "diagrams as code" with PlantUML and Mermaid.
- Structurizr DSL basics.
- Diagram rendering options (Structurizr Lite, Structurizr Site Generatr, PlantUML, and Mermaid).
- Scripting with JSR-223 compatible languages (e.g. Kotlin, Groovy, JRuby). 
- Java plugins.
- Exploring your model with Ilograph.
- Techniques for building enterprise-wide architecture models.
Please bring a laptop with Docker or Java 17 installed.
More