Skip to content

How DataMuru works

DataMuru separates desired state, observed state, and recorded state.

  • Desired state comes from versioned YAML.
  • Observed state comes from supported live provider reads.
  • Recorded state comes from the configured state backend.

The engine compiles configuration into resource descriptors, merges supported live observations with state, and compares fingerprints.

flowchart TB
    C["Configuration"] --> R["Resource descriptors"]
    P["Provider observation"] --> S["Current snapshot"]
    L["Local state"] --> S
    R --> D["Deterministic diff"]
    S --> D
    D --> A["Reviewed plan"]
    A --> E["Provider execution"]
    E --> L

The CLI is a thin layer over the Python API. datamuru plan and DataMuru.plan() use the same engine.

DataMuru is not a general SQL migration engine. It manages declared platform resources and governance intent through provider-specific implementations.