We are considering using C4 for our architecture diagrams. Many diagramming tools (including Structurizr which was developed specifically for it) support C4. I wonder if there are others that use it and I would like to hear your experiences.

My initial assessment is as follows:

Pros

  • Diagram as code is a great way to keep things open to change.
  • It allows for better versioning
  • It enforces semantics into the diagrams. Instead of just thinking in terms of boxes and arrows, one need to dig deeper

Cons

  • It has a relative steep learning curve (one needs to study the DSL even though the end result is just boxes and arrows)
  • The tooling is not perfect. One needs to run a docker container to be able to navigate within the diagram (solution: there is also a SaaS offering)
  • Its view of architecture is somewhat limiting. It doesn’t seem to be catered for augmenting the diagrams with other forms of diagrams (flowcharts, etc.) or text.
  • truthy@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 year ago

    I’ve used C4 in different ways.

    Using Structurizr Lite (docker): I do really like the “as code” aspect. The DSL is okay, the documentation of it not so much. But in the end, the tooling is too limited, and I’ve never come to terms with it. The diagrams becomes very locked in, and are cumbersome to export.

    I’m not a fan of integrating SaaS solutions into the documentation workflow, but would really suggest that in favor of the Lite offering. Although I haven’t used it.

    Using C4 with ordinary tools: What I’ve come to use more, is using the conepts (and templates when available) with other, non-specialized tools. With Miro for example (there are templates). While not as cool as the “as code” way, it’s an nice and accessible way of visualizing software systems.

    • canpolat@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I have been using Mermaid for some time. I really like it since there are many systems that support Mermaid syntax. But it’s a general tool and doesn’t have the benefits of a “framework” Will give Structrz (Lite) a shot, but not being able to embed is an issue.