Skip to main content

Introducing SIDML: A Software, Infrastructure, and Data Modelling Language

· 3 min read
Dan Humphreys
Engineer, Founder Runviz and SIDML

Every system — no matter how complex — is ultimately composed of three fundamental elements: software, infrastructure, and data.

If we could describe these three elements in a single, unified model, we could start to represent entire systems holistically — from cloud infrastructure to code and beyond.

That’s the motivation behind SIDML: Software, Infrastructure, and Data Modeling Language.


Why Model Systems as Graphs?

At their core, systems are made up of “things” that relate to other “things.”
A database stores data for a service.
A function runs on a container.
An API calls another API.

That’s a graph.

  • Nodes represent the things — services, data stores, APIs, buckets, etc.
  • Edges represent the relationships — runs on, calls, writes to, depends on, and so forth.

This gives us a simple, flexible, and universal structure to describe complex systems.


A Simple Example

Here’s a minimal JSON-based SIDML representation of a small system:

{
"version": "0.1",
"nodes": [
{
"id": "n1",
"type": "service",
"name": "Customer API",
"properties": {
"language": "python",
"framework": "fastapi"
}
},
{
"id": "n2",
"type": "database",
"name": "Customer database",
"properties": {
"engine": "postgres",
"region": "eu-west-2"
}
}
],
"edges": [
{
"from": "n1",
"to": "n2",
"relationship": "writes"
}
]
}

This describes a simple two-node system — a FastAPI service writing to a Postgres database — yet the structure can scale to describe any system, from a small script to an enterprise-scale architecture.

Benefits of Modelling with SIDML

A SIDML model opens up powerful possibilities:

  • Unified System Definition: Represent software, infrastructure, and data in a single, consistent model.
  • Generate Views Automatically: Transform a SIDML graph into any visual representation — C4 diagrams, UML, or custom stakeholder views
  • Round-Trip Engineering: Keep diagrams and code in sync
    • Update the diagram → regenerate code
    • Update the code → regenerate the diagram
  • Transform Systems Flexibly - Convert models between frameworks or platforms (e.g. Flask → FastAPI, AWS → Azure).
  • Enhanced Communication - SIDML helps teams reason about systems visually, structurally, and programmatically — all from one source of truth.

The Vision

SIDML is more than a modelling format — it’s the foundation for RunViz, a visual modeling and deployment platform.

The idea is simple:

Model systems once, visualise them dynamically, and generate deployable systems directly from those models.

By keeping the underlying structure graph-based and view-agnostic, we can generate any kind of representation — for developers, architects, or even non-technical stakeholders — without changing the core model.

Join the Discussion

This concept is in its early stages, and feedback is welcome.

You can join the discussion and help shape SIDML here:

👉 GitHub Discussion Link