FabricFabricAirlift
Migration lifecycle

Modernization studio

Build, validate, and promote Databricks-native improvements without weakening the certified migration baseline.

Modernization studio

Modernization begins after the migration baseline is certified and is promoted as a separate measured release.

What you are seeing

Agents may propose bounded improvements, but people decide and Runway promotes the release.

What to do next

Certify the parity baseline, generate recommendations, and validate each one with Experiments guardrails.

Read the developer workflow

Airlift turns modernization into an evidence-gated release loop. It does not append an untracked “optimization” checklist to the migration. Each recommendation is a governed item with a certified migration baseline, a human decision, a Runway release reference, an Experiments comparison, and a final human promotion.

Use this after the migrated object has an active migration certificate. Keeping the baseline and native release separate tells you whether a discrepancy came from migration or from an intentional design change.

Lifecycle

StateMeaningWho can advance it
proposedA rule, developer, or bounded Harness advisor suggested a native change.Agent, system, or authorized developer
accepted, deferred, rejectedA person made the investment decision.Approver
plannedEffort and an immutable Runway release-intent reference are recorded.Operator
implementingThe separate target artifact is being built.Operator
validatingRunway deployment reconciled and every declared Experiments guardrail passed.Admitted worker records evidence
promotedA different person promoted the evidence-backed release.Promoter
reworkEvidence failed or changed and another implementation pass is required.Operator or evidence admission

Agents cannot decide, promote, waive, or publish value claims. Airlift may require state owned by another Fabric product, but stores only its immutable reference and digest.

Developer workflow

List recommendations for one engagement:

fa modernization list --engagement-id "$ENGAGEMENT_ID" --json
fa modernization show "$MODERNIZATION_ITEM_ID" --json

Record a recommendation from a rule or developer. The baseline certificate must be active and belong to the same object and estate:

recommendation.json
{
  "engagementId": "eng_...",
  "estateId": "est_...",
  "objectId": "obj_...",
  "baselineCertificateId": "mct_...",
  "category": "liquid_clustering",
  "title": "Evaluate liquid clustering",
  "rationale": "Compare a target-native layout with the certified baseline.",
  "expectedValue": "Measure representative query latency and maintenance effort.",
  "outcomeTargets": [
    { "metric": "performance", "direction": "decrease", "target": 15, "unit": "percent" }
  ],
  "priority": "high",
  "risk": "medium",
  "recommendationSource": "human",
  "recommendationRef": { "system": "engineering", "type": "design", "id": "DES-42", "digest": "<sha256>" },
  "recommendationDigest": "<sha256>"
}
fa modernization recommend \
  --file recommendation.json \
  --idempotency-key "modernization-recommend-$OBJECT_ID"

Disposition, plan, and start use the same file-command pattern:

fa modernization decide --file decision.json --idempotency-key "modernization-decision-$MODERNIZATION_ITEM_ID"
fa modernization plan --file plan.json --idempotency-key "modernization-plan-$MODERNIZATION_ITEM_ID"
fa modernization start --file start.json --idempotency-key "modernization-start-$MODERNIZATION_ITEM_ID"

plan.json must include effortMinutes and a digested foreign reference whose system is runway. The Runway CLI (fr) builds, deploys, promotes, and rolls back the artifact; the Airlift CLI (fa) records why that release is required by the migration program.

A/B evidence contract

After the candidate is deployed, run the certified baseline and modernization treatment through Experiments. Functional parity is a guardrail; outcome metrics measure whether the change achieved its stated goal.

modernization-evidence.json
{
  "modernizationItemId": "mod_...",
  "targetArtifactId": "art_...",
  "deploymentRequirementId": "dpr_...",
  "validationExecutionId": "vex_...",
  "validationEvidenceRef": { "system": "experiments", "type": "evidence_manifest", "id": "manifest-42", "digest": "<sha256>" },
  "validationEvidenceDigest": "<sha256>",
  "comparison": {
    "experimentRef": { "system": "experiments", "type": "experiment", "id": "exp-42" },
    "evaluationRef": { "system": "experiments", "type": "evaluation", "id": "eval-42", "digest": "<sha256>" },
    "evidenceDigest": "<sha256>",
    "baselineTreatment": "certified-migration",
    "modernizationTreatment": "liquid-clustering",
    "guardrailVerdict": "passed",
    "metrics": [
      { "name": "performance", "baseline": 10, "modernized": 7, "unit": "seconds", "direction": "decrease", "verdict": "passed" }
    ]
  },
  "reason": "Functional guardrails and the declared performance target passed."
}
fa modernization evidence --file modernization-evidence.json --idempotency-key "modernization-evidence-$MODERNIZATION_ITEM_ID"
fa modernization promote --file promotion.json --idempotency-key "modernization-promote-$MODERNIZATION_ITEM_ID"

Evidence admission fails unless the Runway deployment is reconciled as matched and succeeded, the Experiments validation completed without failed objects, every comparison metric passed, and reference digests agree. A promoter must be distinct from both the recommender and the disposition decision-maker.

Categories

Airlift supports Lakeflow, serverless, Unity Catalog, Delta optimization, liquid clustering, materialized views, streaming, data products, AI/BI, MLflow, model serving, and governance recommendations. A category describes the intended change; it does not claim that every source object should receive that change.

Next: Measure engagement value.

On this page