Comment by kukkeliskuu
Comment by kukkeliskuu 5 hours ago
Many of my enterprise customers face the microservice hairball problem. Adoption of microservices has been "too succesful". There may be 200-400 microservices, and ownership may be lacking. The number is typically growing fast, because it is easier to create a new one than use an existing one.
So I started to work on a side project called "Arch Ascent" for addressing these situations. It seems like it is becoming a kind of a architectural governance tool for visualizing and validating software system dependencies.
- Dependency Graph — Syncs projects from SonarQube and visualizes component dependencies using Cytoscape.js, with graph algorithms for detecting cycles (SCCs), clustering (Louvain), and computing coupling metrics
- Visions — Workspaces for exploring architectural scenarios. Each vision can have multiple versions/variations with different layouts while sharing the same definitions
- Layers — Named groupings of components (e.g., "Domain Layer", "Team Ownership", "GitLab Groups") that can be visualized as colored regions on the canvas
- References — Named sets of components defined via Tag expressions, layer membership etc.
- Statements — Architectural intent constraints that can be evaluated against the actual dependency graph, such as existence, containment, exclusion, cardinality etc.
The plan is to also incorporate Grounds, which are Intermediate stable states on the path from the current situation (ground zero) toward a vision. Each ground represents a releasable milestone that moves the architecture closer to the target vision without necessarily fulfilling all its statements. Grounds enable incremental architectural evolution with well-defined checkpoints.
Stack: Django, HTMX, Cytoscape.js, pyparsing for natural language parsing of References and Statements.
It seems so crazy that we have gotten to this point!