Fork me on GitHub
Ludger Solbach15:05:24

Overarch ( A data driven description of software architecture based on the C4 model. Describe your model as data and specify/generate representations (e.g. diagrams) for your model. All core and supplementary C4 diagrams except code diagrams are supported. Overarch is not so much about how to model your architecture (see for that), but about making the models composable and reusable.

🎉 34
Mario Trost21:05:27

This looks cool, I hope to give it a spin clojure-spin I really liked this talk from the Conj 2019, in case you don't know it yet:;list=PLZdCLR02grLqSy15ALLAZDU6LGpAJDrAQ&amp;index=14 That's the first mention of C4 I had heard, but I wasn't a Clojure developer then (just watching talks...), so I only created C4 models with the Structurizr DSL and never with the mentioned in the talk.

Ludger Solbach21:05:25

I started this project after I've seen the fc4framework talk only 3 weeks ago. I've created quite a few C4 models directly in PlantUML before but PlantUML and the fc4framework mix models and views and don't lend themself to composability and reuse, IMHO. That's why I built something new. Also the development of the fc4framework seems to have stalled after the conj talk 4 years ago. 😞


I used structurizr last year for the C4 models at a company, it was useful to start conversations with other teams regarding their services I published a generalised version of the C4 model I created Would be nice to use Clojure to model the system though

Ludger Solbach07:05:57

Hello John, that's at least the idea to model the system as data. It works fine, IMHO, with the PlantUML export and I've started with the export of structurizr workspaces. Also export of JSON files is implemented, for those who want to use the models outside of clojure. At the moment, the description of the model and the views is a bit chatty and there is room for improvement. Element names could be generated from the ID for example and a default selection for views (like include *) would be nice. I've written down some of my ideas in /doc/, if you're interested.

👍 2
Ludger Solbach07:05:36

One area that will require some thought is the specification of icons in a way that is compatible with the different rendering programs (e.g. PlantUML and structurizr). But with a bit of mapping, it should be manageable.


I've added a detailed look at overarch to my TODO list, thank you

Ludger Solbach15:05:34

Feedback about the concept and the implementation is appreciated.


I was at first a bit hesitant to release this, but someone asked me to release it to clojars, so what the heck. Introducing deps.add-lib, which brings the Clojure 1.12 add-lib feature to leiningen and/or other environments that don't have a specific version of the Clojure CLI installed! It works by invoking deps.clj (a re-implementation of the clojure CLI in Clojure itself) instead of shelling out to the installed version of the clojure CLI. Usage:

(require '[borkdude.deps.add-lib :refer [add-lib]])
(add-lib 'medley/medley)
(require 'medley.core) ;; bingo
Hope it's useful to more than one or two people, so here you go :-)

clojure-spin 58
🎉 28