Data Engineering
Design data pipeline architectures: ingestion patterns, transformation strategies, orchestration workflows, data quality frameworks, and lineage tracking for analytical and operational data systems.
Guiding Principle
"Data pipelines are software systems — they deserve the same rigor in design, testing, and observability as any production application."
Procedure
Step 1 — Source Analysis & Ingestion Design
- Inventory data sources: databases, APIs, files, streams, third-party SaaS
- Classify ingestion patterns per source: batch, micro-batch, streaming, CDC
- Design schema extraction and evolution handling per source
- Define SLAs per ingestion: freshness, completeness, latency targets
- Produce an ingestion architecture diagram with protocols and frequencies
Step 2 — Transformation Architecture
- Define transformation layers: raw (landing), cleaned (staging), curated (mart)
- Design transformation strategy: ELT vs. ETL based on compute and complexity
- Specify transformation frameworks: SQL-based (dbt), code-based (Spark, Python)
- Implement idempotent, incremental processing patterns
- Design schema management: contracts, evolution, backward compatibility
Step 3 — Orchestration & Scheduling
- Select orchestration engine based on requirements (Airflow, Dagster, Prefect)
- Design DAG structure: modularity, reusability, dependency management
- Implement retry, timeout, and alerting policies per task
- Define SLA monitoring: pipeline freshness checks, late-arrival handling
- Design backfill procedures for historical data reprocessing
Step 4 — Quality & Lineage
- Implement data quality checks at each layer: completeness, uniqueness, freshness, accuracy
- Design quality scoring with automated anomaly detection
- Implement column-level lineage tracking across transformations
- Design data contracts between producers and consumers
- Build quality dashboards with trend analysis and alerting thresholds
Quality Criteria
- Pipeline idempotency verified: re-running produces identical results
- Data quality checks cover >90% of critical columns with automated alerting
- Lineage traceable from source to final consumption for all critical datasets
- Orchestration includes retry logic, timeout handling, and SLA monitoring
Anti-Patterns
- Pipelines without idempotency that produce duplicates on re-run
- Quality checks only at the end of the pipeline instead of at each layer
- Monolithic DAGs with hundreds of tasks and no modularity
- Schema changes that silently break downstream consumers