Scalable ETL pipelines on Databricks require four design decisions to be correct from the start: use Auto Loader for file-based ingestion instead of full directory reads, write transformation logic in SQL or vectorised PySpark functions rather than row-level Python UDFs, configure schema evolution per component because Databricks does not apply it globally, and handle data skew actively since Spark's Adaptive Query Execution helps but does not eliminate skew caused by genuinely imbalanced join keys. Getting any of these wrong produces a pipeline that works in development and degrades quietly in production as data volume grows.