C4 model poster

A few people have recently asked me for a poster/cheat sheet/quick reference of the C4 model that I use for communicating and diagramming software systems. You may have seen an old copy floating around the blog, but I've made a few updates and you can grab the new version from http://static.codingthearchitecture.com/c4.pdf (PDF, A3 size).

Software architecture and the C4 model


About the author

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.

You can find Simon on Twitter at @simonbrown ... see simonbrown.je for information about his speaking schedule, videos from past conferences and software architecture training.

Re: C4 model poster

Hello Simon, what do the arrows actually mean? Does it make sense for example, to have an arrow coming from an external system to an application server on the containers diagram?

Re: C4 model poster

Hi Edrisse ... when I draw arrows, I usually draw them from active thing to passive thing. For example, "A calls B", or "A uses B". There's nothing to prevent you from drawing arrows the other way around though (e.g. "data flows from B to A") if you like, just make sure that you annotate the arrow to describe the intent.

To answer your specific question, sure, why not. For example, perhaps your external system is providing data to a container (e.g. an application server). Or maybe that external system is calling an API or sending messages, to which your application server is subscribing. As I said, just make sure you annotate the arrow to describe the intent. Hope that helps!

Re: C4 model poster

Awsome Simon, thanks a lot.

Re: C4 model poster

Hello, Which tool are you using to sketch your diagrams? You mentioned Structurizr in the past but it is still marked as "work in progress"..

Re: C4 model poster

For the diagrams on the poster, I used OmniGraffle for the Mac (it's basically a Visio clone). Structurizr *is* still a work in progress, but it *will* produce some pictures for you. :-)

Re: C4 model poster

OK, Thanks a lot

Add a comment Send a TrackBack