تحول بزرگ در Apache Airflow: معرفی نسخه ۳
بعد از سالها کار با نسخههای ۱ و ۲، بسیاری از ما به محدودیتهای Airflow عادت کرده بودیم — از ضعف در مدیریت DAGهای پیچیده، تا اجرای محدود وظایف و نبود انعطاف کافی در تعامل با دادهها و رویدادها. حالا نسخه ۳ آمده تا این چالشها را برطرف کند.
در این پست، مهمترین ویژگیهای Airflow 3 را با هم مرور میکنیم:
۱. نسخهبندی DAGها و مشاهده تاریخچه اجرا
در نسخههای قبلی، کوچکترین تغییر در DAG باعث گم شدن در کد میشد. تشخیص اینکه کِی یک task حذف یا اضافه شده دشوار بود.
حالا با ویژگیهای AIP-65 و AIP-66، ایرفلو در نسخه ۳ امکان نسخهبندی DAGها را فراهم کرده است.
در UI میتوان بهراحتی تغییرات بین نسخههای DAG را مشاهده کرد — هم در نمای گرافیکی و هم در نمای جدولی. این ویژگی بهویژه برای audit، دیباگ کردن و بررسیهای بعد از وقوع خطا بسیار حیاتی است.

۲. Backfill هوشمند و هماهنگ با Scheduler
در گذشته اجرای backfill برای دورههای زمانی طولانی، بهویژه در ML pipelineها، باعث کندی شدید یا مصرف بیش از حد منابع میشد.
Airflow 3 با AIP-78، فرآیند backfill را مستقیماً به Scheduler سپرده. حالا این اجراها هم مقیاسپذیرتر شدهاند و هم از UI قابل کنترل هستند.
این ویژگی اجرای Pipelineهای مرتبط با داده های قبلی یا تست مدلهای ML با دادههای گذشته را بسیار راحتتر کرده.

۳. اجرای وظایف در هر زبان و محیطی
یکی از بزرگترین تغییرات Airflow 3، تبدیل آن به یک معماری Client/Server است.
با معرفی Task Execution API (AIP-72)، اجرای وظایف از حالت «فقط پایتون» خارج شده و میتوان از زبانهایی مثل Go (و در آینده زبانهای دیگر) استفاده کرد.
همچنین قابلیت اجرای Task در محیطهای مختلف مثل Local، Kubernetes یا حتی Remote edge نیز فراهم شده است.
این یعنی میتوان Airflow را در ساختارهای چند ابری (multi-cloud) و چند زبانه (multi-language) استفاده کرد.
۴. زمانبندی بر اساس رویدادها (Event-Driven Scheduling)
در نسخههای قبلی، DAGها فقط بر اساس زمان یا وابستگی به DAGهای دیگر اجرا میشدند.
با Airflow 3 و AIP-82، مفهوم جدیدی بهنام Data Assets و Watchers معرفی شده است. این ساختار اجازه میدهد تا DAGها با رخدادهای بیرونی تریگر شوند.
مثال: با رسیدن یک پیام به AWS SQS، میتوان یک DAG را اجرا کرد.
اما نکته مهمتر اینجاست:
ساختار Watcherها قابل توسعه است. یعنی اگر شما به جای SQS از Kafka استفاده میکنید، میتوانید یک Watcher سفارشی برای Kafka بنویسید تا روی یک Topic مشخص گوش کند و در صورت دریافت پیام، DAG دلخواه را اجرا کند.
این موضوع Airflow را برای سناریوهای real-time، stream processing و سیستمهای رویدادمحور مثل IoT بسیار کاربردی میکند.
۵. اجرای DAG برای Inference و تحلیلهای لحظهای
پیشتر Airflow فقط DAGهایی با وابستگی زمانی را پشتیبانی میکرد.
حالا با AIP-83، امکان اجرای DAG بدون وابستگی به
execution_date
فراهم شده.
این قابلیت برای اجرای مدلهای ML بهصورت API-based یا انجام Inferenceهای سریع بسیار مفید است.
۶. رابط کاربری کاملاً جدید
UI در نسخههای قبلی با Flask AppBuilder ساخته شده بود و توسعه آن سخت و کند بود.
Airflow 3 با AIP-38 و AIP-84، رابط کاربری را با React و FastAPI بازنویسی کرده.
نتیجه؟ رابطی سریعتر، سبکتر و قابلتوسعهتر.
همچنین Flask AppBuilder از هسته Airflow جدا شده و به یک پکیج مستقل تبدیل شده است که بروزرسانیهای امنیتی و نگهداری را سادهتر میکند (AIP-79).

۷. امنیت بهتر با ایزولاسیون وظایف و CLI مدرن
در سازمانهای بزرگ، وقتی چند تیم از یک Airflow استفاده میکردند، مسئله امنیت بین Taskها جدی بود.
حالا Taskها میتوانند ایزوله اجرا شوند و با API Server تعامل داشته باشند.
همچنین CLI جدید airflowctl
معرفی شده که بهصورت remote و امن با Airflow تعامل دارد (AIP-81).