Type drift is the silent killer
The pipeline that worked yesterday breaks today, with no code change, because the upstream source quietly changed a type. Common patterns:
- An ID column that was always numeric starts coming in as strings (
'12345'). - A date column changes format from
YYYY-MM-DDtoDD/MM/YYYY. - A previously-non-null column starts having nulls.
- A free-text field that used to be plain text starts containing JSON.
- A currency field changes from "123.45" to "$123.45" or "123,45".
Two-tier defense
- At the gate. Schema validation (Pandera/GX) catches the drift the same day it happens, before downstream consumers see it.
- At rest. A scheduled "profile diff" comparing this run's profile to last week's — surfaces drift as warnings even when validation hasn't been written for a particular constraint.