Live data from Hacker News

Architecture diagrams enable better conversations

unravelled.dev

71–80 of 141 posts

Re: Architecture diagrams enable better conversations

#72

I introduced C4 into my org a few years ago after disparate and unfocused documentation (if there even was any) and a lack of organizational competency on our own systems. We’ve found that you get a lot of value out of the first two levels of C4 alone. If your shop is good at UML and keeping it up-to-date, awesome, that work snaps right in as the additional layers. But whether you do 3 and 4 or not, context and conta…

I found my big problem with C4 was that it was too rigid to get the architecture quite right, so I ended up either with a diagram that felt overall too low-level (because I'd had to drop down a level to get the relevant details in), or a diagram that was too high level (where I'd just skipped the bits that were with discussion, and now needed to add more written documentation to make up for it).

I really like diagramming, and I tend to do it whenever architecture comes up, but the best tools I've found are just pen and paper (or pen and whiteboard, or in a pinch Microsoft Paint). That way, you can draw exactly the relevant details for the discussion at hand.

This doesn't work great for "diagrams as code", i.e. anything you want to check into git. I've recently had some success with ASCII drawings - there are a couple of online tools that draw the basics, and you can get the fine details by hand - but that's more time consuming, particularly for quick sketches.

Re: Architecture diagrams enable better conversations

#73
post #33

I've been using https://structurizr.com/ to automatically generate C4 diagrams from a model (rather than drawing them by hand). It works well with the approach for written documentation as proposed in https://arc42.org/ . It's very easy to embed a C4 diagram into a markdown document. The result is a set of documents and diagrams under version control that can be rendered using the structurizr documentation server (fo…

Recently been doing the same Structurizr consolidation since amongst our various teams we had a mish-mash of Lucidchart, Miro, and other collaborative design tools. One thing I was experimenting with (read: struggling with!) was a way to keep per-service (per-repo) architecture workspaces which are also synchronized on-commit to a central workspace and used !include to bind them together. The moving parts are not dif…

I looked at the avisi stucturizr-site-generatr, however, decided to render the docs via structurizr-lite. It provides better interactivity for C4 model diagrams, e.g., drilling down into diagrams and tooltips. I found the ADR integration in structurizr-lite sufficient.

Re: Architecture diagrams enable better conversations

#74
Mh. I'm not dealing in software architecture and much rather infrastructure architecture. But it's great to see that the onboarding documentation I'm currently writing Is mirroring the C4-architecture to a decent degree.

Like, at the highest level, we have the different nomad clusters with stuff around them, and how these are used at a business level, relevant regulations and such. This splits into a number of identically structured datacenters with a number of connections between them. Then, each datacenter consists of a number of software clusters, some deployed, some not deployed. It's pretty much the same code with the same toggles, just somewhat different due to different underlying cloud providers. What clusters are deployed or not deployed is a risk-management-decision, as well as a business decision. But that's when the highlevel overviews stop, because then you get into the weeds. And not just a little bit, that's when you need chops to manage postgres to manage some of those clusters.

But I'm putting a lot of hope into these diagrams and explanations for onboarding new colleagues, or maybe presenting the infrastructual ideas at meetups or conferences. Nothing against them, but a lack of an abstract understanding of a few high level ideas is really hurting a few new colleagues.

Like, if I have a ticket, what set of systems would be right to work with? What happens if the ticket specifies ... other systems? What if you follow a runbook and the runbook suddenly banks portside really hard and tells you to touch systems outside the cluster you're working upon? In most cases, this is going to be wrong. It might be hard to determine what would be correct here, but with a decent grasp, it usually ends up easy to determine if the path isn't correct.

Re: Architecture diagrams enable better conversations

#75
post #33

I've been using https://structurizr.com/ to automatically generate C4 diagrams from a model (rather than drawing them by hand). It works well with the approach for written documentation as proposed in https://arc42.org/ . It's very easy to embed a C4 diagram into a markdown document. The result is a set of documents and diagrams under version control that can be rendered using the structurizr documentation server (fo…

I use MermaidJS for flow chart and Sequence diagram. They have C4 in beta. I tried and it is hard adjust the layout and many features are not supported for C4 yet.

Visual Studio has good support for MermaidJS. https://mermaid.js.org/intro/

Re: Architecture diagrams enable better conversations

#76

I've had the idea that graph diagrams (including architecture diagrams) can be paged - you show a different set of links/vertices on each page of the same graph (show the same node but different enumeration of edges). Many codebase visualisations I've seen were too complicated to understand because the diagrams were so large. (I've seen some visualisations generated from code that were so small when panned around you…

> I've seen some visualisations generated from code that were so small when panned around you have to zoom in. It's not a great experience. I would love a Google-Maps-Like architecture diagram. Zoom out and you see high level flows, zoom in and you get the details you want to see. Different overlays to let you explore how systems are connected or how certain sub features work. Obviously this is hard to do and even ha…

[deleted]

Re: Architecture diagrams enable better conversations

#77
post #33

I've been using https://structurizr.com/ to automatically generate C4 diagrams from a model (rather than drawing them by hand). It works well with the approach for written documentation as proposed in https://arc42.org/ . It's very easy to embed a C4 diagram into a markdown document. The result is a set of documents and diagrams under version control that can be rendered using the structurizr documentation server (fo…

I use MermaidJS for flow chart and Sequence diagram. They have C4 in beta. I tried and it is hard adjust the layout and many features are not supported for C4 yet. Visual Studio has good support for MermaidJS. https://mermaid.js.org/intro/

for C4 structurizr is the best so far I know. I use that for landscape , container diagrams. I got feedbacks that even CIOs are able to get the picture easy. If they have some ways to produce better layouts for large landscape it would be awesome.

Re: Architecture diagrams enable better conversations

#79

Earlier quoted context omitted.

> I've seen some visualisations generated from code that were so small when panned around you have to zoom in. It's not a great experience. I would love a Google-Maps-Like architecture diagram. Zoom out and you see high level flows, zoom in and you get the details you want to see. Different overlays to let you explore how systems are connected or how certain sub features work. Obviously this is hard to do and even ha…

I’m working on exactly this idea, if it goes well I’ll launch it as a product. I am trying to figure out the value proposition and who to sell it to and for how much. If anyone has ideas, please reach out. I would be very grateful.

I am also working the on a personal project like this in my free time, but would really like to see others' work or even contribute to them. Would you be up for exchanging ideas?
Post reply on HN