

- #GENERIC SEQUENCE DIAGRAM TOOL HOW TO#
- #GENERIC SEQUENCE DIAGRAM TOOL SOFTWARE#
- #GENERIC SEQUENCE DIAGRAM TOOL CODE#
With asciidoctor we generate the documentation for all the. adoc file for the features that have one or more sequence diagrams. These Sequence Diagrams are mostly used to describe the flow of a feature(file). In Adoc we use the PlantUML syntax to define for example Component Diagrams and Sequence Diagrams. This results in a documentation container for every build. If you a favourite you prefer over both these, please let me know in the comments below.Įxamples shown can be found in my plantuml-vs-mermaid GitHub repo.Currently our documentation exist of a set of Adoc (some kind of Markdown) files combined with Pickles. Hope you've enjoyed exploring the difference between these two tools. PlantUML is still a great tool and can be used as a fallback where Mermaid falls short. Mermaids' big downfall is the experimental support for C4 models, which is an excellent for architectural diagrams.Īs mentioned above Mermaid is the winner IMHO and performs best for most scenarios. Much of the syntax is similar between the two, but Mermaid tends to do a slightly better job at rendering a nicer looking diagram OOTB. We also explored some niche diagrams such as gitgraph, JSON data, and mind maps. We've compared the common diagram types such as activity/flowcharts, sequence, entity relationship, state, and C4 models.
#GENERIC SEQUENCE DIAGRAM TOOL HOW TO#
In this article we've explored how to setup PlantUML and Mermaid and the main differences between the two. Mermaid will be fine for most of your needs, but for anything more complex or for doing C4 models, I would fall back to PlantUML. The main reason being ease of use directly in markdown. Overall if I had to pick one, I would choose Mermaid. With PlantUML, you need to also check in the images to source control and these could easily become out of date. Having markdown auto render the images in source control systems like Azure DevOps or GitHub is HUGE! This guarantees the diagrams will always be up to date with their definitions. The big elephant in the room is the rendering.

In terms of customisation, PlantUML has been around far longer and supports advanced diagram customisation. PlantUML works as you would expect and has support for more advanced setup like sprites. This shows as you have little control over the way the diagram is rendered, and some parts are unreadable (i.e., arrows over nodes).

Winner: Mermaidįor C4 Models, Mermaid support is still experimental. Not sure why PlantUML needs to have a line in the middle of each node. Winner: Mermaidįor State diagrams, syntax is also similar, but Mermaid renders the images slightly better. Winner: Drawįor ER diagrams, again syntax is similar, but Mermaid renders the images slightly better. Winner: Mermaid.įor Sequence diagrams, both syntax is similar, and the rendered image is also similar. In terms of setup, Mermaid is the simplest as you don't need to set up any external applications or servers. Overall, both tools do an excellent job, although in some cases one will shine over the other. There are a few out there, but this is the best one:
#GENERIC SEQUENCE DIAGRAM TOOL CODE#
Note: This article assumes VS Code is your editor of choiceįirst up, you'll need the PlantUML extension. So, which one is best? Let's take a look! Setup Mermaid is a JavaScript based engine and is the new kid on the block. PlantUML is a Java based engine has been around for a long time and is battle tested. Two popular choices for this are PlantUML and Mermaid. The added advantage is you can source control your diagrams and audit changes overtime. In this way you describe the diagram with code and the tooling takes care of the visual rendering. These generic tools do allow a lot of flexibility but end up costing you more time than you intended to align all boxes and arrows and to get the colour schemes just right.Īn approach gaining in popularity is to use tooling that allows 'diagrams-as-code'.
#GENERIC SEQUENCE DIAGRAM TOOL SOFTWARE#
There are many generic diagramming tools that can be used to design software such as (formerly draw.io), Miro, or Lucid Charts. A software implementation on the other hand, is not. Before jumping into any complex software development, it's often a good idea to spend some time designing the system or feature you will be working on.
