21 — Governance & Trust

Model Registry & Versioning#

GovernancePractice 1 min read
◆ The PatternCentral catalog with staging, production, and archive states

A model registry is a versioned catalog where every model has metadata (who trained it, on what data, with which hyperparameters) and a lifecycle stage: staging → production → archived. Approval workflows ensure no model reaches production without review.

// Interactive — model lifecycle states
Pattern bridge: Model registries version models the way lineage tracking versions data — both create audit trails. In markets, strategy journaling serves the same purpose: versioned records of what you deployed and why.
Worked example

The fraud model’s v9 is promoted to production, and v8 is archived. It misbehaves; one rollback call later v8 is live again and v9 is archived. Because the registry records which version is where, rolling back is a pointer change, not a rebuild.

Where it misleads
  • Rollback is only instant if the old artifact and its environment still exist; keep them.
  • Rolling back the model does not roll back the data or features it was trained on.
  • Approval steps that are always clicked through give a false sense of control.
In code
registry = {'fraud': {'v7': 'archived', 'v8': 'production', 'v9': 'staging'}}
history = ['v7', 'v8']                                   # production versions, oldest first

def promote(name, version):
    reg = registry[name]
    for v, stage in reg.items():
        if stage == 'production': reg[v] = 'archived'
    reg[version] = 'production'; history.append(version)

def rollback(name):
    history.pop(); promote(name, history.pop())

promote('fraud', 'v9')
rollback('fraud')                                        # v9 misbehaves: one call back to v8
live = [v for v, s in registry['fraud'].items() if s == 'production']
Python, in your browser — edit the code and run it again

Assumes import numpy as np and import pandas as pd. Each snippet carries its own example numbers; the comments say which are made up or simulated.

The same idea with a library
# Python — MLflow model registry
import mlflow

# Register a new model version
result = mlflow.register_model(
    "runs:/abc123/model",
    "fraud-detector"
)

# Promote to production
client = mlflow.tracking.MlflowClient()
client.transition_model_version_stage(
    name="fraud-detector",
    version=result.version,
    stage="Production"
)
Sources
  • MLflow documentation, “Model Registry”, mlflow.org
  • M. Zaharia et al., “Accelerating the Machine Learning Lifecycle with MLflow”, IEEE Data Engineering Bulletin 41(4), 2018
  • M. Vartak et al., “ModelDB: A System for Machine Learning Model Management”, HILDA Workshop at SIGMOD, 2016

Last reviewed October 2026 · How this site checks its content · Report a mistake

Linked from 1
← Previous
Cost Governance
Open in the full reader, with the topic sidebar