C4 PlantUML Helper

It has been a very busy last couple of months where I am helping pull together an architecture for a massive transformation project. The project is made up of a number of feature led value streams and is being delivered by a collection of enabling squads.

There are zillion stakeholders who all want to know what it is being transformed, big picture views right down to build and test views to make sure we land on our “most loveable product”.

A C4 modelling standard of C4 has been adopted and the bulk of the modelling is being done using PlantUML. There are still a number of recalcitrants who are sticking to either Visio or Gliffy within Confluence.  However the maturity curve is pointing up.

Getting up to speed with C4 is easy peasy and before you know it you have more diagram scripts than you can shake a stick at.

The issue then becomes:

  • how do you standardise on alias and label names?
  • how do you pickup and maintained common descriptions?
  • how easy is it to add navigational links as the C4 maker had intended?

  • How do we maintain and integrate all these scripts so to produce a “Model” of the architecture.

Some of these issues are being solved as we head towards a Docs-as-code approach by using Visual Studio Code and GitHub as per the following context diagram. The C4 Helper PlantUML macro, I am hoping will help solve a couple more of the above.   

The C4 Helper allows a the modeller to register context, container and component object. The registration includes descriptions, technology and importantly an URL link will be used to navigate up and down the C4 levels.

Context View

Container View

A setting is used to control whether the description is displayed within the diagram or not. Alternatively, you may choose to list all the containers as part of the legend.

Component View

Jump across to my GitHub Repo for a look at the code.

 

Leave a comment