TechFabricTechFabricAirlift

Architecture

Understand Airlift's domain module, governed mutation pipeline, workers, adapters, and extension boundaries.

Architecture

Airlift owns the migration lifecycle: estates, objects, waves, readiness, certificates, and cutover decisions. It composes execution, conversion, validation, persistence, and observability through published contracts rather than rebuilding those capabilities.

Request and evidence flow

Specialist tools perform the work. Airlift admits their outputs by immutable reference, checks provenance and policy, and makes the resulting decision traceable. Converter success alone never proves production readiness.

Repository map

PathDeveloper responsibility
packages/airliftdomain module, governed actions, policies, projections, source profiles, certificate contracts
packages/cliauthenticated engagement onboarding plus local source planning, diagnostics, catalogs, and certificate verification
packages/adapter-lakebridgeDatabricks job submission and immutable Lakebridge result references
packages/storedurable event and projection persistence
apps/airlift-workerassessment and conversion activities, schedules, cutover workflow, effector seam
apps/consoleDatabricks Apps identity boundary and operator workbench

Source integrations extend narrow adapters. They do not add a parallel database or mutation API. Start with createSourceMigrationPlan() to discover the commands, actions, outputs, and evidence expected by a source profile.

Governed domain module

Every externally meaningful state change is an airlift.* Platform action. Handlers return pending domain events; the host appends them only after schema, authorization, policy, and state-machine checks pass. This produces one mutation and audit path for the console, workers, agents, and application integrations.

The event ledger folds into organization-scoped views for inventory, the migration funnel, readiness, waves, conversion attempts, certificates, and audit. Illegal transitions—such as certifying before conversion or recording a cutover before it is authorized—are rejected structurally.

Use the CLI to inspect the installed action surface:

fa actions
fa actions --json > .airlift/action-contract.json

Worker and durable cutover

The application owns its deterministic Temporal domain workflow. Harness supplies the worker and connection plumbing. Workflow code performs no I/O; activities call adapters and invoke governed actions with stable idempotency keys.

Cutover follows a strict sequence:

  1. re-read frozen scope, fresh readiness, certificates, and approvals;
  2. create a durable external checkpoint;
  3. apply the non-idempotent endpoint change once;
  4. verify external state independently;
  5. compensate once when verification proves a failed effect was applied;
  6. record success/rollback, or leave an uncertain outcome open for reconciliation.

The authenticated airlift.wave_approve action is the only approval authority. Temporal signals can wake a readiness check but cannot carry actor identity, approval, denial, or waiver authority.

Extension seams

SeamDevelopment implementationProduction implementation
storein-memory event storedurable Postgres-compatible store through @fabricorg/airlift/store
converterStubLakebridgeAdapterversion-pinned Lakebridge workspace jobs
repairdisabled unless injectedbounded Harness agent producing one reviewable candidate
transfertyped contract driversource-specific snapshot/incremental driver with checkpoints and reconciliation
validationfixtures or test runneradmitted provider with immutable evidence and snapshot identities
cutoverStubCutoverEffector in local mock modecertified checkpoint/apply-once/verify/compensate implementation

Ownership boundaries

Airlift does not implementCompose instead
SQL transpilationDatabricks Lakebridge
Temporal connection and worker plumbingFabric Harness Temporal package
row comparison and test executionLakebridge Reconcile or Experiments testkit
mutation pipeline and audit storageFabric Platform and Platform Host
Databricks authentication and clientsFabric Harness Databricks package
general-purpose agent runtimeFabric Harness

These boundaries keep source adapters replaceable and prevent a migration project from creating competing definitions of deployment, monitoring, or task state.

On this page