The 3 AM page is almost always preventable
Nearly every data pipeline incident we've been called in to fix traces back to one of a small number of preventable gaps: no schema validation at ingestion, no alerting on data volume anomalies, or silent failures that only surface downstream, days later, in a broken dashboard.
Validate at the boundary
Every pipeline should validate incoming data against an explicit schema at the point of ingestion, rejecting or quarantining records that don't conform instead of letting malformed data propagate silently into downstream transformations.
Idempotency is not optional
Pipelines will be re-run — because of failures, backfills, or manual intervention. If a pipeline isn't idempotent, every re-run risks duplicating or corrupting data. This should be a design requirement from day one, not a fix applied after the first incident.
Alert on absence, not just errors
The most dangerous failures are often silent: a pipeline that simply stops receiving data, or a source that quietly starts sending zero records. Alerting purely on exceptions misses these. Volume and freshness monitoring catches what error-based alerting can't.
Observability pays for itself
Teams that invest in pipeline-level tracing and lineage tracking spend dramatically less time during incidents figuring out where in a multi-stage pipeline a problem originated — often the majority of total incident response time.
Build for the 3 AM version of your team
The best pipelines are designed assuming whoever gets paged has no prior context: clear error messages, runbooks linked directly from alerts, and dashboards that show pipeline health at a glance.