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
