Fan Out Over Files You Haven't Seen Yet: Dynamic Task Mapping in Airflow
A nightly pipeline must process an unknown number of files. Airflow's dynamic task mapping (.expand(), stable since 2.3) creates one real task instance per item at runtime — with per-item retries, logs, and UI status.