FINOS CALM

website·Indexed 37 days ago

https://calm.finos.org

An architecture-as-code framework for defining, validating, and generating software architectures. It includes a CLI, a VS Code extension, CALM Studio, and CALM Hub for visualization and management, alongside AI-powered development tools and a validation server to enforce architectural standards.

Tokens
52.5K
Snippets
238
Records
373
Agent score
66%

What's inside CALM

  1. Overview of the Common Architecture Language Model (CALM)

    The Common Architecture Language Model (CALM) is an open-source specification developed by the Architecture as Code (AasC) community under FINOS. It provides a standardized, machine-readable, and human-readable JSON-based format for defining software architectures. CALM aims to standardize architecture descriptions, enable automation (validation, visualization, and compliance checks) within CI/CD workflows, and foster collaboration by aligning design intent with implementation through version-controlled architecture definitions.
  2. Overview of CALM Patterns

    Patterns in CALM are reusable architecture templates expressed as JSON Schemas. They serve a dual purpose: generating new architecture scaffolds and validating that existing architectures conform to a required structure. A pattern prescribes the necessary nodes (services, systems, databases), the relationships connecting them, and the constraints or choices required for those elements.
  3. Overview of CALM (Common Architecture Language Model)

    CALM is an open-source FINOS specification that defines architecture as code. It replaces static diagrams and whiteboards with a standardized, version-controlled, and machine-readable format. This allows teams to standardize their architectural language, automate the generation of diagrams and documentation via CI/CD pipelines, and embed security and compliance controls directly within the architecture for continuous enforcement.
  4. Overview of CALM Widgets

    Widgets in CALM are reusable, template-driven components built on Handlebars that transform architecture data into human-readable Markdown documentation. They act as self-contained rendering components that accept a CALM architecture context and optional parameters to produce formatted output such as tables, lists, and Mermaid diagrams. Widgets are implemented as Handlebars helpers and are invoked using the {{widget-name context options}} syntax.
  5. Overview of CALM (Common Architecture Language Model)

    CALM (Common Architecture Language Model) is an 'Architecture as Code' framework designed to bridge the gap between software design and implementation. It replaces informal, static diagrams (like Visio or whiteboard sketches) with a standardized, machine-readable format (JSON schemas). This allows architecture to be version-controlled, automated, and validated, ensuring that the deployed system matches the intended design.
  6. Overview of the CALM system modeling workflow

    CALM allows architects to model a system by defining core elements—nodes, relationships, and metadata—in a file and then rendering them into a validated live diagram. The workflow consists of understanding the building blocks, defining nodes and interfaces, establishing relationships between those nodes, and finally visualizing the architecture using dedicated tools.
  7. Overview of CALM Core Concepts

    CALM (Architecture as Code) uses a set of primary components to define and manage software architecture. The core building blocks include:

    • Nodes: The primary building blocks of the architecture.
    • Relationships: Define how nodes connect and interact.
    • Interfaces: Interaction points exposed by nodes.
    • Controls: Domain-specific controls applied to the architecture.
    • Standards: Organizational requirements used to extend components.
    • Flows: Traces of business processes through architectural relationships.
    • Timelines: Tracking of architectural evolution over time.
    • Decorators: Supplementary information such as security context, deployments, and business metadata attached to elements.
    • Metadata: Additional information used to enrich the architecture.
    • Widgets: Reusable template components used to generate Markdown documentation from architecture models.
  8. Overview of the Common Architecture Language Model (CALM)

    The Common Architecture Language Model (CALM) is designed to transform software architecture by introducing consistency, automation, and control. It addresses common architectural challenges through standardization, compliance, and core features such as architectural patterns, validation, and visualization.
  9. Overview of CALM Hub

    CALM Hub is the central artifact store for the CALM ecosystem, used for publishing, versioning, and distributing CALM architecture models and compliance assets. It functions as both a repository and an interactive visualization tool for system architectures, patterns, and security controls.
  10. Overview of CALM Patterns

    CALM Patterns are reusable architecture templates that define the required structure of an architecture. They specify mandatory nodes, the relationships that must connect them, and the properties those entities must possess. Patterns serve a dual purpose: they can be used to generate new architectures from a template or to validate that an existing architecture adheres to a specific structural standard.
  11. Overview of the CALM architecture tutorial business context

    This tutorial uses a trading application based on FINOS TraderX to demonstrate how to model architectural elements—such as nodes, interfaces, relationships, and process flows—using CALM's declarative JSON-based language. The goal is to capture architectural elements in a machine-readable format for validation, visualization, and analysis.
  12. Overview of CALM Widgets

    CALM Widgets is a TypeScript framework built on Handlebars that provides reusable components for generating Markdown documentation from CALM architecture data. It allows developers to create tables, lists, and Mermaid diagrams without needing deep knowledge of Handlebars syntax. These widgets are used both within the VSCode CALM extension for live previews and via the calm docify CLI command to generate static documentation websites.