Skip to content Skip to footer

ETL modernisation with data contracts and dual runs

ETL modernisation should preserve business meaning as well as move data. Inventory the old jobs and downstream dependencies, define versioned data contracts, then reconcile old and new outputs during a controlled dual run before the data owner approves promotion.

Composite reference architecture. A reference migration pattern; no production migration or performance gain is claimed.

The operating problem

Legacy pipelines contain undocumented business rules, manual recoveries and downstream timing assumptions. A clean rewrite can be technically elegant and operationally wrong.

How the workflow works

Document source schemas, transformation rules, cutoffs and recovery procedures before rebuilding a job. Run the replacement against matching input snapshots or a reconciled change stream. Compare record-level results and business aggregates, with explicit tolerances for late data and expected differences. A successful scheduler run does not establish that the output is complete or correct.

Case 14 Data engineering · ETL and pipeline modernisation: authorised inputs, validation, candidate work, human control, approved action, verified receipt, metrics and weekly review. The diagram labels exception and correction paths.Case 14 Data engineering · ETL and pipeline modernisation: authorised inputs, validation, candidate work, human control, approved action, verified receipt, metrics and weekly review. The diagram labels exception and correction paths.
Reference workflow. The human decision, exception route and feedback loop connect the source evidence to the intended outcome. Open the figure for the full canvas.

Where review and controls matter

Schema changes and backfills need bounded ranges and destination-aware retry behaviour. Preserve the old version and the last trusted output until the new pipeline has passed the agreed contract checks. Timezone rules and downstream availability deadlines should be tested explicitly, because a numerically correct dataset can still arrive too late for the business process that consumes it.

Orchestration reference: Apache Airflow core concepts.

What to measure

Use a fixed cohort and measurement window. Count numerator events only within the denominator's eligible cohort; sampled measures use the same audit sample for both terms. Record the source, exclusions and owner, and keep missing data visible. These definitions are proposed measurement contracts, not observed results.

Proposed operating measures
MeasureDefinition and unit
FreshnessElapsed time between the latest represented source event and the consumer's observation time; minutes or hours, with source-delay treatment.
CompletenessExpected records present in the destination divided by records expected from the reconciled source window; percent.
Reconciliation varianceDifference between old and new outputs under a declared record and aggregate comparison; count, currency or percentage as appropriate.
Failure recoveryTime from a detected pipeline failure to restored output meeting the data contract; median and p90 minutes.
Downstream SLADeliveries meeting the consumer's completeness and availability deadline divided by deliveries due; percent.

A useful first pilot

Choose one pipeline with a known downstream consumer. Inventory its hidden dependencies, run representative historical and late-arriving data through both versions, and have the data owner approve a reconciliation report and rollback procedure.

Bring the workflow, its source records and the decision that needs an owner to a BergLabs pilot discussion.

Get in touch

Leave a comment

0.0/5