Skip to main content

Architecture Overview

CalmStudio is a visual editor for CALM (Common Architecture Language Model) architectures. It lets you draw diagrams visually and get valid, machine-readable CALM 1.2 JSON automatically — or import existing CALM JSON and get an editable diagram. Architecture becomes the source of truth.

What is CALM?

CALM is a FINOS open-source specification for describing software architectures as structured JSON. A CALM document contains:

  • Nodes — architectural components (services, databases, actors, networks, etc.)
  • Relationships — how components connect or contain each other
  • Controls — security and compliance requirements attached to individual components

CalmStudio is a visual editor for CALM documents. Every visual change produces valid CALM JSON; every JSON edit is reflected visually.

The Interface

CalmStudio interface showing the canvas, node palette, and CALM JSON editor

CalmStudio has three main areas:

AreaLocationPurpose
Node paletteLeft sidebarDrag node types onto the canvas
CanvasCentreVisual diagram workspace
CALM JSON editorRight panelRaw CALM 1.2 JSON (bidirectional sync)
Properties panelRight panel (context)Edit selected node or relationship properties
ToolbarTopFile, layout, view, and export actions

Core Concepts

Node Types

CALM 1.2 defines 9 built-in node types:

TypeDescriptionTypical use
actorHuman user or external systemEnd users, administrators, third-party systems
ecosystemLogical grouping of systemsCloud region, Kubernetes cluster, organisation boundary
systemBounded software systemApplication, platform, product
serviceIndependently deployable microserviceAPI, background worker, function
databasePersistent data storePostgreSQL, Redis, S3, MongoDB
networkNetwork boundary or zoneVPN, load balancer, CDN, firewall
ldapLDAP directory serviceActive Directory, LDAP identity provider
webclientBrowser-based frontendWeb application, SPA
data-assetNamed data entity or datasetS3 objects, data streams, files

Extension packs (see below) add dozens more types for AWS, GCP, Azure, Kubernetes, AI/Agentic systems, and FluxNova.

Relationship Types

Relationships describe how nodes are connected or structured:

TypeMeaningExample
connectsCommunication channelService calls database over HTTPS
interactsHuman actor interactionUser interacts with web client
deployed-inDeployment containmentService deployed in Kubernetes cluster
composed-ofStructural containmentPlatform composed of microservices
optionsAlternative implementationsOption A or Option B for storage

Relationships carry protocol information (HTTP, HTTPS, gRPC, TCP, mTLS, etc.) and source/destination node references.

Controls

Controls attach security and compliance requirements to individual nodes or relationships. Each control has:

  • A domain-oriented key (e.g., data-encryption, edge-protection) — not framework-prefixed
  • A description of what it enforces
  • One or more requirements with a requirement-url pointing to a policy document
  • Optional config-url and config for framework-specific mapping (e.g., AIGF AIR-IDs)

Controls in CalmStudio appear as badges on nodes and can be edited in the Properties panel.

Canvas Features

Drag-and-Drop Editing

The canvas is built on Svelte Flow (the Svelte port of React Flow). You can:

  • Drag nodes from the palette to create them
  • Move nodes by dragging
  • Resize container nodes (ecosystem, network, VPC, etc.) by dragging corners
  • Select multiple nodes with a lasso drag or Shift+click
  • Zoom and pan with scroll wheel or trackpad gestures
  • Double-click a node to open inline label editing

Bidirectional Sync

Every edit on the canvas is immediately reflected in the CALM JSON editor, and vice versa. This bidirectional sync means:

  • Visual designers work in the canvas
  • Engineers work in the JSON editor
  • Both views are always in sync — there is no "save" step between them

The sync is powered by Svelte 5 runes: the CALM document is a single reactive store, and both the canvas and the JSON editor are views over it.

Properties Panel

Clicking a node or relationship opens the Properties panel. You can edit:

  • Name and description
  • Node type (changes the visual badge and CALM type field)
  • Interfaces (URL endpoints, host-port pairs, container images, port numbers)
  • Controls (add, edit, or remove security requirements)
  • Custom metadata fields

Extension Packs

CalmStudio ships 7 built-in extension packs, giving you 60+ additional node types beyond the 9 CALM core types:

PackNode typesExamples
CALM Core9Actor, Service, Database, Network
AWS33Lambda, EC2, S3, DynamoDB, VPC, EKS, RDS, CloudFront, SQS
GCP~20Cloud Run, BigQuery, Pub/Sub, GKE, Cloud SQL
Azure~20App Service, Cosmos DB, Service Bus, AKS, Blob Storage
Kubernetes~15Pod, Deployment, Service, Ingress, ConfigMap, Namespace
AI/Agentic~10LLM, AI Agent, Vector Store, Tool, MCP Server
FluxNova~10FluxNova Engine, Connector, Workflow, Topic

You can also create custom packs. See Extension Packs.

C4 View Mode

CalmStudio supports C4 hierarchical zoom levels using CALM's containment relationships (deployed-in, composed-of):

C4 LevelZoomWhat is shown
ContextHighestSystems and their external actors only
ContainerMidContainers inside each system
ComponentLowestComponents inside each container

Switch between levels using the View menu in the toolbar. CalmStudio filters the visible nodes based on the CALM containment relationships in your document — no separate diagram needed for each level.

Governance: AIGF Scoring

CalmStudio integrates the FINOS AI Governance Framework (AIGF) for AI system architectures. When your diagram contains AI nodes (LLM, AI Agent, Vector Store, etc.), CalmStudio can:

  • Score your architecture against 23 AIGF risk categories
  • Surface 23 corresponding mitigations from the AIGF catalogue
  • Show a governance scorecard in the sidebar
  • Suggest controls to attach to AI nodes

Governance scoring is opt-in — use the Governance panel to trigger a scan.

Auto-Layout

CalmStudio uses ELK.js for automatic diagram layout. Three presets are available:

PresetAlgorithmBest for
Hierarchical LRELK Layered, left-to-rightService dependency diagrams
Hierarchical TBELK Layered, top-to-bottomTraditional architecture diagrams
Force-directedELK ForceExploratory diagrams with many nodes

Auto-layout respects CALM containment relationships — ecosystem and network containers are laid out with their children inside them.

Trigger re-layout from Diagram → Auto-layout in the toolbar.

Import and Export

FormatImportExport
CALM JSON (.json, .calm.json)YesYes
SVGNoYes
PNGNoYes

Import a CALM JSON file to start from an existing architecture (e.g., one generated by the MCP server or CALM CLI). Export lets you save the canonical CALM JSON, or render the diagram as a PNG for documentation.

MCP Server Integration

CalmStudio ships a standalone MCP server (@calmstudio/mcp-server) that lets AI tools like Claude Code and GitHub Copilot create and modify CALM architectures programmatically. The server exposes 21 tools covering node CRUD, relationship management, rendering, and validation.

See MCP Server for setup and usage.

FINOS CALM Ecosystem

CalmStudio is part of the FINOS Architecture-as-Code ecosystem:

  • CALM spec: calm.finos.org/release/1.2/
  • CALM CLI: Validate, lint, and generate from CALM documents
  • CALM Hub: Community registry of published CALM architectures
  • CalmStudio: Visual editor (this project)