This repository contains a collection of FINOS CALM (Common Architecture Language Model) examples demonstrating architecture patterns, concrete implementations, and compliance controls.
CALM is an open standard from FINOS for describing software system architectures in a machine-readable format using JSON Schema. This test area serves as a sandbox for creating, testing, and refining CALM architecture definitions.
Concrete architecture implementations representing specific system designs:
- Web Applications:
web-app.architecture.json,simple.architecture.json - Database Variants:
my-app-mysql.architecture.json,my-app-mongodb.architecture.json - Conference Systems:
conference2.architecture.json,mysql-conference.architecture.json,postgres-conference.architecture.json - Messaging Systems:
kafka.architecture.json,rabbitmq.architecture.json,rabbitmq-broker.architecture.json,sqs.architecture.json
Reusable architecture patterns with JSON Schema validation:
conference.pattern.json: Conference signup system with Kubernetesconference2.pattern.json: Alternative conference architectureapp-component.pattern.json: Conference system with message broker integrationmessage-broker.pattern.json: Service with message broker (RabbitMQ/Kafka)messaging.pattern.json: Messaging architecture patternmy-app.pattern.json: Generic application patternweb-app.pattern.json: Web application pattern
Security and compliance control definitions:
encryption-in-transit.control.json: Data encryption requirements (NIST-800-53 SC-8)
Generated Docusaurus documentation sites that visualize the architectures as static websites. These include node descriptions, relationship diagrams, and architecture decision records for various system configurations.
GitHub Copilot chat logs documenting pattern creation, refinement, and summarization sessions showing the iterative design process.
Demonstrates how to create and enforce organization-specific standards on top of FINOS CALM:
the-company.standard.json: Company-specific JSON Schema standard extending CALM nodesthe-company.pattern.json: Pattern that enforces the company standardmy-app-standard-compliant.architecture.json: Example compliant architecturemy-app-non-standard-compliant.architecture.json: Example non-compliant architecturearchitecture-validate-process.md: Detailed explanation of the validation process and how the three files connect
Components in the architecture (services, databases, web clients, clusters)
Connections between nodes with protocols and relationship types:
- connects: Direct connections between components
- deployed-in: Deployment relationships
- options: Alternative architecture choices
Communication endpoints with hosts, ports, and URLs
Reusable architecture templates with validation rules using JSON Schema constraints
- Web Frontend (webclient)
- API Service (service)
- Database (MySQL/PostgreSQL/MongoDB options)
- Frontend
- Backend Service
- Message Broker (RabbitMQ/Kafka/SQS)
- Database
- Kubernetes Cluster
- Application Service
- Database (with choice of MySQL or other options)
These CALM files can be:
- Validated against the CALM JSON Schema
- Visualized in architecture diagrams
- Generated into documentation (Docusaurus)
- Used as Templates for new architecture designs
- Analyzed for compliance and patterns
This repository follows the CALM 1.2 specification:
- Schema:
https://calm.finos.org/release/1.2/meta/calm.json - Core definitions:
https://calm.finos.org/release/1.2/meta/core.json - Interface definitions:
https://calm.finos.org/release/1.2/meta/interface.json - Control definitions:
https://calm.finos.org/release/1.2/meta/control.json
.architecture.json: Concrete architecture instances.pattern.json: Reusable architecture patterns.control.json: Security/compliance controls.standard.json: Organizational standards