airflow-best-practices
Installation
SKILL.md
Apache Airflow Best Practices (3.2.0)
DAG Authoring
Imports (Airflow 3.x)
- Use
from airflow.sdk import DAG, task, Asset— the stable public API - Legacy
from airflow.models import DAGandfrom airflow.decorators import taskare deprecated
Top-Level Code (CRITICAL)
- Avoid heavy computation at module level (executed on every DAG parse)
- Minimize imports at module level — lazy-load inside
@taskfunctions - Never call APIs, query databases, or access Variables at top level
- If Variables needed at top level, enable experimental cache with TTL
TaskFlow API (Default Pattern)
- Use
@taskdecorator for all Python tasks (preferred over classic operators) - XCom serialization is automatic — return values become XCom
- Use
@task.branchfor branching logic - Use
@task.sensorfor sensor tasks