L1
Ingestion and capture
Getting data out of operational systems without hurting them and without silently losing rows. Change data capture where the source supports it, batch extraction where it does not, idempotent loads so a rerun does not double count, and a landing zone that keeps the raw payload exactly as it arrived.
The single most common defect at this layer is an extract that quietly truncates when the source changes a column type, and a pipeline that reports success anyway. We catch it by asserting the row count and the schema on arrival, not by reading the log afterwards.