Yep. It's a valid point that we should re-evaluate things now after Airflow
3 is out - the reason why we delayed it was that we wanted to get more
clarity on what implementation and scope of the Airflow 3 changes will be
and see how it fits.

I wonder what others - especially those who run Airflow at scale and
hear the users asking for different forms of multi-team - would say to the
expectations they have and how they map to Airflow 3 - maybe indeed we
might come up with a simpler way of achieving those expectations.

Definitely worth discussing it.

J.


On Thu, Jun 12, 2025 at 2:15 PM Ash Berlin-Taylor <a...@apache.org> wrote:

> Hi everyone,
>
> One thing I’ve been struggling with while reading the other thread about
> multi-team DB changes[0] is what is the end-user problem we are trying to
> address with it.
>
> The main impetus for opening this discussion is that a lot has changed in
> Airflow since this AIP was created in early 2024 and voted on mid-2024, and
> I'm wondering if those changes are big enough to invalidate the design and
> assumptions made at the time.
>
> Reading the DB changes thread I see that that changes are far reaching and
> necessarily have to touch most of the Airflow object models, and this got
> me thinking about what value do we actually get with the change, since as
> stated in the AIP some of the non-goals are[1] (slightly edited here for
> brevity with the “[…]"):
>
>
> > • Sharing broker/backend for celery executors between teams. This MAY be
> covered by future AIPs
> > • Implementation of FAB-based multi-team Auth Manager. […]
> > • Per-team concurrency and prioritization of tasks. […].
> > • Resource allocation per-executor. In the current proposal, executors
> are run as sub-processes of Scheduler and we have very little control over
> their individual resource usage. […]
> > • Turn-key multi-team Deployment of Airflow (for example via Helm
> chart). This is unlikely to happen.[…]
> > • team management tools (creation, removal, rename etc.). […]
> > • Combining "global" execution with "team" execution. While it should be
> possible in the proposed architecture to have a "team" execution and
> "global" execution in a single instance of Airflow, this has it's own
> unique set of challenges and assumption is that Airflow Deployment is
> either "global" (today) or "multi-team" (After this AIP is implemented) -
> but it cannot be combined (yet). This is possible to be implemented in the
> future.
> > • Running multiple schedulers - one-per team. While it should be
> possible if we add support to select DAGs "per team" per scheduler, this is
> not implemented in this AIP and left for the future
>
> And also Design Non-goals from the AIP [2]:
>
> > • It’s not a primary goal of this proposal to significantly decrease
> resource consumption for Airflow installation compared to the current ways
> of achieving “multi-tenant” setup. […]
> > • It’s not a goal of the proposal to provide a one-stop installation
> mechanism for “Multi-team” Airflow. […]
> > • It’s not a goal to decrease the overall maintenance effort involved in
> responding to needs of different teams, […]
>
> The main pain point that we seem to be addressing with this AIP is this[3]:
>
> > The main reason for having multi-team deployment of Airflow is achieving
> security and isolation between the teams, coupled with ability of the
> isolated teams to collaborate via shared Datasets.
>
>
> So what’s changed since we collectively (myself included) voted on and
> accepted this AIP? Well, we now have AIP-82 — External event driven dags.
> That could be used to achieve this goal right now in 3.0 with no changes to
> Airflow itself, and is perhaps a more robust mechanism of doing it too.
>
> So my main question, given the wide reaching code changes need for AIP-67,
> and (IMO) the imperfect/limited scope of team completion I wonder if using
> AIP-82 would not be a better solution to the problem.
>
> 1. It’s much simpler from a code level, as nothing need to change
> 2. It’s not _that_ much more complex from an operational point of view
> (you have to run an extra scheduler and web server,  but those would likely
> need scaling up.)
> 3. We won’t disappoint people by not implementing the part of multi-team
> that they want (Someone being part of multiple teams, sharing
> connections/vars between teams)
>
> And using this mechanism (of external dataset/asset polling) also negates
> one of the biggest cons of the AIP-67, that of the tight coupling of
> Airflow versions between the teams. In larger companies this is a _huge_
> problem already, and this would only make it worse.
>
> So what’s my idea (and at this stage is it only an idea for discussion) is
> that we re-evalute AIP-67 in light of what exists in Airflow 3.0 now and
> decide if it’s still worth the added complexity of DB, code and operational
> overhead, and decided if we still want it.
>
> Please, please, please point out if there are other benefits that I have
> missed, I'm not trying to be selective and get my way, I'm trying to make
> sure Airflow continues to meet the need of users, and can also continue to
> evolve (where I worry that complexity of code/datamodel materially hurts
> that final point)
>
> Thoughts?
>
> [0]: https://lists.apache.org/thread/78vndnybgpp705j6sm77l1t6xbrtnt5c
> [1]:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=294816378#AIP67MultiteamdeploymentofAirflowcomponents-Whatisexcludedfromthescope
> ?
> [2]:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=294816378#AIP67MultiteamdeploymentofAirflowcomponents-DesignNonGoals
> [3]:
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=294816378#AIP67MultiteamdeploymentofAirflowcomponents-Whyisitneeded
> ?
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
> For additional commands, e-mail: dev-h...@airflow.apache.org
>
>

Reply via email to