CALM Integration: Machine-Readable Architecture Topology
Formalizing What We Already Model
The Continuous Architecture Platform already maintains rich architecture metadata: 13 YAML files describing services, domains, cross-service calls, data stores, events, actors, and PCI scope. But this metadata is informal — there is no schema validation, no cross-referencing, and no automated governance.
CALM (Common Architecture Language Model) is a FINOS open-source standard that provides exactly this: a JSON Schema-based specification for declaring architecture topology in a version-controlled, validatable format.
What CALM Adds
flowchart TD
subgraph today ["Today (Informal Metadata)"]
Y1[domains.yaml]
Y2[cross-service-calls.yaml]
Y3[data-stores.yaml]
Y4[events.yaml]
Y5[actors.yaml]
Y6[pci.yaml]
end
subgraph calm ["With CALM (Formal Topology)"]
C1[Unified Node Graph]
C2[Typed Relationships]
C3[Validatable Patterns]
C4[Enforceable Controls]
end
today --> |"Migrate + Unify"| calm
calm --> V[CI Validation]
calm --> G[Auto-Generated Diagrams]
calm --> I[Impact Analysis]
style today fill:#ede7f6
style calm fill:#e8f5e9
style V fill:#5e35b1,color:#fff
style G fill:#5e35b1,color:#fff
style I fill:#5e35b1,color:#fff
CALM in One Table
| CALM Concept | What It Models | Our Equivalent Today |
|---|---|---|
| Nodes | Services, databases, actors, applications | Scattered across 5+ YAML files with no unified model |
| Relationships | REST calls, events, DB connections | cross-service-calls.yaml (REST only) + separate events.yaml |
| Interfaces | Endpoints, Kafka channels, JDBC connections | OpenAPI specs (endpoints only) — no interface registry |
| Patterns | Reusable architectural blueprints | Solution design template — not machine-validatable |
| Controls | Governance policies (PCI, data ownership, API-only access) | Manual PR review — no automated enforcement |
What CALM Does NOT Replace
CALM is a topology layer — it models how things connect, not what they do or why.
| Artifact | Stays As-Is | Why |
|---|---|---|
| OpenAPI specs | Yes | CALM models topology; OpenAPI models API contracts |
| AsyncAPI specs | Yes | CALM references events; AsyncAPI defines schemas |
| Solution designs | Yes | Change lifecycle is orthogonal to topology |
| MADR decisions | Yes | Human judgment artifacts, not topology |
| Capability model | Yes | Business alignment, different axis |
Why It Matters: Automated Governance
Today, architecture rules are enforced by human reviewers reading PRs. CALM enables CI-enforced governance:
| Rule | Enforcement Today | With CALM |
|---|---|---|
| No shared databases | PR review | CI rejects any DB node connected to 2+ services |
| PCI scope boundaries | Manual pci.yaml list |
CALM control flags PCI data flows automatically |
| API-mediated access only | copilot-instructions.md rule |
CI rejects direct JDBC between services |
| Data ownership boundaries | PR review | Formally declared and validated |
CALM turns architecture rules into automated tests. A PR that introduces a shared database connection fails CI — before any human reviewer needs to notice it.
Phased Adoption
| Phase | Scope | Timeline | Outcome |
|---|---|---|---|
| 0: Pilot | Model one bounded context (Operations domain) | 1-2 weeks | Prove CALM validation catches violations |
| 1: Full Topology | Model all 19 services, 57 nodes, all relationships | 2-3 weeks | Single source of truth for system topology |
| 2: CI Integration | CALM validation in GitHub Actions on every PR | 1-2 weeks | Automated governance enforcement |
| 3: Generator Evolution | Portal generators read CALM topology instead of ad-hoc YAML | 3-4 weeks | Simpler, more accurate diagram generation |
The pilot is designed to prove value at minimal cost — model one domain, run one validation, decide whether to proceed.
Impact on the Continuous Architecture Loop
CALM strengthens every step of the continuous architecture workflow:
| Step | Without CALM | With CALM |
|---|---|---|
| INVESTIGATE | Read multiple YAML files to understand topology | Query one CALM document for the full topology graph |
| DESIGN | Hope the AI reads the right metadata files | AI reads a canonical, validated topology model |
| REVIEW | Reviewers check rules manually | CI validates patterns and controls automatically |
| PUBLISH | Generators scrape 5+ YAML files | Generators traverse a formal graph model |
| PROMOTE | Manually verify what was built matches what was designed | Compare CALM topology snapshot before vs after |
The Bigger Picture
CALM is the missing formalization layer between our informal metadata and our CI/CD pipeline:
flowchart LR
A[Architecture Ticket] --> B[AI-Assisted Design]
B --> C[Updated CALM Topology\n+ OpenAPI Specs]
C --> D[git push]
D --> E[CI: CALM Validation\n+ Spec Linting]
E --> F[Auto-Published Portal]
F --> G[PROMOTE: Reconcile\ntopology vs reality]
G --> C
style B fill:#5e35b1,color:#fff
style E fill:#e91e63,color:#fff
style G fill:#ff8f00,color:#fff
CALM completes the automation story. Automated publishing eliminates the manual wiki step. The PROMOTE step eliminates the design-reality gap. CALM validation eliminates the manual governance step. Together, they make architecture truly continuous.
Full technical plan
The detailed CALM integration plan — with file structures, CLI commands, and migration strategy — is available in the architecture repository.