Live data from Hacker News

Show HN: Create diagrams of complex data flows in software systems

github.com

1–10 of 67 posts

Show HN: Create diagrams of complex data flows in software systems

#1
Hello HN,

It has been a while since I contributed to the web, so I decided to get back in shape and publish "something".

This app is a POC of "what if diagrams were more dynamic". I'm a software engineer by trade, and with conventional tools, I often times struggle to explain flows of data in complex software systems.

I got inspired by video games like The Incredible Machine and Factorio, as in some ways, software systems tend to become Rube Goldberg-esque machines ;) As a side quest, I also wanted to craft diagrams faster than text-based tools (ex: mermaid), as I am always forgetting their syntax.

If you try the app, you will certainly struggle with its UI, especially when crafting flows, as I used all my brain juice on the core idea. I have cool features in my head for a v1 but today I really wanted to simply show what I got.

You can access the app directly at https://gg-charts.com and there are some examples in the Github README to get you started.

Happy to answer questions and humbly receive your honest feedback on this crazy idea!

Show HN: Create diagrams of complex data flows in software systems
github.com

Re: Show HN: Create diagrams of complex data flows in software systems

#4
I know you said you prefer the GUI over text-based, but that was the exact thing I wanted to ask for after trying your demo. GUI just doesn’t scale like text does. How will you be able to generate a diagram from code or a running process unless you have some intermediate textual representation? I assume you do anyways, at least implicitly, to save the state of your GUI’s output. You should bring that into focus. The GUI editor is simply a nonstarter for me. How do you compare the difference between two diagrams?

IMO the editing/sharing/maintenance experience of Mermaid’s sequence diagrams is nicer. What is your opinion on sequence diagrams in general? I much prefer their static nature and directional flow over animations you have to wait for when you need to review a detail you missed, and the top/down direction is better than trying to track points moving around in arbitrary directions.

Re: Show HN: Create diagrams of complex data flows in software systems

#5
post #4

I know you said you prefer the GUI over text-based, but that was the exact thing I wanted to ask for after trying your demo. GUI just doesn’t scale like text does. How will you be able to generate a diagram from code or a running process unless you have some intermediate textual representation? I assume you do anyways, at least implicitly, to save the state of your GUI’s output. You should bring that into focus. The…

> I assume you do anyways, at least implicitly, to save the state of your GUI’s output. You should bring that into focus.

Indeed, I do have a YAML / JSON representation under the hood, which is validated by JSON Schema. In the app, you can click on "file > yaml editor" to access it.

I thought about having a mermaid-like syntax on top of my YAML representation but before adding this, I need to have a proper "auto-layout" feature. Currently, the editor is responsible to detect collisions between systems and to "space them out" until no collisions are found. I need to bring that responsibility back to the core library instead of the editor, as right now, the core library only accept systems without collisions to resolve. TL;DR: it's feasible and I'm open to the idea!

> What is your opinion on sequence diagrams in general?

I like them in small bites, i.e. with few participants and presenting one simple flow. They do become daunting (for me) to read and maintain with more participants and complex flows. I like to sprinkle them in my documentations. In mermaid, I find myself bouncing from "flow diagrams" to "sequence diagrams" all the time.

> over animations you have to wait for when you need to review a detail you missed

I'm currently working on a "viewer mode" / "presentation mode" as I don't want this continuous playback loop to become the default way to present a flow in a system. This continuous playback is useful as an overview of a flow but not to present it to an audience or to embed in a technical documentation. I want to be able to present a flow, step by step, as if it was a slideshow.

Re: Show HN: Create diagrams of complex data flows in software systems

#7

This is really great. However, I’d prefer this as a layer on top of an existing graphing library / syntax.

I thought about extending mermaid's flowcharts instead of starting from scratch. No particular reason I did not go that route, mostly "to do my own thing".
Post reply on HN