Design Model Registry

Medium40 min
1 / 30
understanding8 min read

Problem Statement: Enterprise Model Registry

Problem Statement: Enterprise Model Registry — model registry interview depth

Problem Statement: Enterprise Model Registry

Design an enterprise model registry that version-controls ML artifacts, captures lineage from datasets through training runs, and gates promotion to production with policy and audit—not merely a folder of pickle files. This section uses a mechanism-first lens on central metadata catalog for ML artifacts, versions, lineage, and promotion gates.

Why MLflow, W&B, and Neptune interviews probe here

Companies selling MLOps platforms need engineers who treat the registry as the system of record: immutable versions, searchable metadata, and event-driven integration with serving. Hand-waving "we use S3" fails when asked about concurrent promotions, tenant isolation, or dataset retractions.

Operational detail you should voice aloud

State numeric assumptions: 800 versions/day, 4.2 PB cumulative artifacts, 833 read QPS on metadata from routers, and P99 register < 400ms excluding upload bytes. Tie each number to a capacity formula on the whiteboard.

Failure modes worth volunteering

Partial multipart uploads polluting storage, split-brain Production tags, stale router caches serving deprecated weights, and lineage gaps when experiment trackers omit dataset URIs. For each, name detection (hash mismatch alert, promotion audit gap) and mitigation (GC worker, optimistic lock, webhook-driven warm-up).

Whiteboard checkpoint (understanding)

Draw the control plane (metadata + policy) separate from the data plane (object storage). Label the event that fires when model.stage.changed so serving warms artifacts before traffic moves.

Implementation snippets (registry identifiers)

javaOne Dark Pro
1public record ModelVersionKey(String tenant, String model, int version) {}
2public enum ModelStage { NONE, STAGING, PRODUCTION, ARCHIVED }
pythonOne Dark Pro
1@dataclass(frozen=True)
2class ModelVersionKey:
3 tenant: str
4 model: str
5 version: int
6
7class ModelStage(str, Enum):
8 NONE = "None"
9 STAGING = "Staging"
10 PRODUCTION = "Production"
11 ARCHIVED = "Archived"
typescriptOne Dark Pro
1export interface ModelVersionKey {
2 tenant: string;
3 model: string;
4 version: number;
5}
6export type ModelStage = "None" | "Staging" | "Production" | "Archived";

Section-specific depth (sec-01)

Unlike generic MLOps lectures, anchor answers to Problem Statement: Enterprise Model Registry: cite how immutable versioned artifacts with cryptographic hashes changes RBAC queries, how lifecycle stages: none → staging → production → archived affects RPO, and how integration hooks for training jobs and serving routers shapes CI contracts. Interviewers reward causality, not buzzwords.

Why interviewers care

Model Registry interviews reward crisp scope, explicit trade-offs, and failure stories—not generic microservice diagrams.

Interview checkpoint

Name one failure story for Problem Statement: Enterprise Model Registry that proves you understand real outages, not happy-path diagrams.

Key Highlights

  • Immutable versioned artifacts with cryptographic hashes
  • Lifecycle stages: None → Staging → Production → Archived
  • Integration hooks for training jobs and serving routers
  • Audit trail for regulated industries (finance, healthcare)
Interview tip
Lead with Immutable versioned artifacts with cryptographic hashes before drawing boxes—interviewers score problem decomposition first.
Avoid
Do not conflate experiment tracking UI with the registry system of record; runs are optional inputs, versions are authoritative.

Section Rescue Kit

Buzzwords to use:

Model StageContent Hash

Safe statements:

  • "Let me separate registry metadata (Postgres) from artifact blobs (understanding path)."
  • "I will cite version/day and read QPS before picking search replicas."
Design Model Registry - System Design | WinJob | WinJob