Migrating from Apache Airflow v2 to v3

from airflow.sdk import dag, task
from datetime import datetime

@dag(
    start_date=datetime(2024, 1, 1),
    schedule=[MY_JOB_ASSET]
)
def downstream_dag():

    @task
    def consume_data():
        pass

    consume_data()

downstream_dag()

Why this migration matters

Beyond individual features, migrating to Airflow 3 felt less like an optional upgrade and more like a necessary step forward. Airflow 3 represents a clear architectural direction for the project: API-driven execution, better isolation, data-aware scheduling and a platform designed for modern scale.

While Airflow 2.x is still widely used, it is clearly moving toward long-term maintenance (end-of-life April 2026) with most innovation and architectural investment happening in the 3.x line. Delaying migration only widens the gap:

  • More breaking changes accumulate
  • Provider compatibility becomes harder to manage
  • Teams miss out on improvements that simplify debugging and orchestration

For me, moving from 2.10.3 to 3.0.6 wasn’t just about staying current; it was about aligning with where Airflow is headed. Even with a few rough edges, Airflow 3 feels like the foundation the project needed for its next phase.

Donner Music, make your music with gear
Multi-Function Air Blower: Blowing, suction, extraction, and even inflation

Leave a reply

Please enter your comment!
Please enter your name here