Overview

Apache Airflow 3.0, released on March 15, 2025, is a major rewrite introducing Assets, a new backfill system, and a Task Execution Interface (TEI).

Main Features

Assets (formerly Datasets)

Datasets are renamed to Assets with an enriched API. DAGs can be triggered by asset events, enabling data-driven orchestration.

python
from airflow.sdk import Asset, DAG, task

raw_data = Asset('s3://bucket/raw/data.csv')
clean_data = Asset('s3://bucket/clean/data.parquet')

@task
def clean(source: Asset) -> Asset:
    # Data processing
    return clean_data

with DAG('etl', schedule=[raw_data]):
    clean(raw_data)

Improved backfills

The backfill system is completely redesigned. Backfills can be started, paused, and cancelled via the UI or API, with detailed progress tracking.

python
# Airflow 3.0 CLI
# airflow backfills create --dag-id etl \
#   --from-date 2025-01-01 --to-date 2025-03-01

# REST API
# POST /api/v2/backfills
# {"dag_id": "etl",
#  "from_date": "2025-01-01",
#  "to_date": "2025-03-01"}

Task Execution Interface (TEI)

The new Task Execution Interface (TEI) decouples task execution from the scheduler. Executors can run on remote workers communicating via API.

python
# airflow.cfg
# [core]
# executor = airflow.executors.local_executor.LocalExecutor

# TEI allows remote workers to communicate
# via the Airflow API instead of direct DB access

# Start a remote worker:
# airflow worker --executor-url http://airflow-api:8080

Sources