You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Airflow 3.x: split DAG-Processor service into its own role. #637
The DAG file processor runs at regular intervals to parse and prepare python files ready for execution.
Airflow 2.x
This can be started automatically by default as a subprocess as part of the command airflow scheduler, or run as a stand-alone process by setting AIRFLOW__SCHEDULER__STANDALONE_DAG_PROCESSOR
Airflow 3.x
Always runs as a standalone process, to be started with airflow dag-processor.
Problem
As of 25.7.0 and Airflow 3.x, the Airflow operator runs the dag-processor as a standalone process, but as part of the scheduler role (and statefulset). This has a number of drawbacks:
if the dag-processor crashes it is not detected and does not trigger a re-start automatically
resources can not be set independently for the scheduler and the dag-processor
logging levels can not be set independently for the scheduler and the dag-processor
Proposal
Introduce a new optional role to go alongside the existing ones:
webservers
schedulers
celeryExecutors / kubernetesExecutors
dagProcessors
This new role will encapsulate a command that runs airflow dag-processor.
airflow dag-processor cannot be started as part of the scheduler in Airflow 3.x
so it will be either (still) included as a specific command in the scheduler pod, or moved to its own pod, depending on whether a dagProcessors role has been specified
airflow dag-processor should default to being a scheduler subprocess in Airflow 2.x
so users can include a dagProcessors role, which will cause AIRFLOW__SCHEDULER__STANDALONE_DAG_PROCESSOR to be set to True
Thank you. This is fine with me.
I don't fully understand the naming (processors vs. dagProcessors) but I'll happily defer that to you and the decision process.
The Airflow DAG-processor component now has an optional individual role in the resource definition, allowing it to be separately configured (e.g. logging, resources) and run in a dedicated container.
Activity
lfrancke commentedon Aug 28, 2025
Thank you. This is fine with me.
I don't fully understand the naming (processors vs. dagProcessors) but I'll happily defer that to you and the decision process.
adwk67 commentedon Aug 29, 2025
Yes, it's confusing. I've renamed it in the description.
lfrancke commentedon Aug 29, 2025
Thank you
adwk67 commentedon Sep 8, 2025
Release note snippet