To be honest I am glad you raised this argument - because it means that the
goal I had in mind has been achieved. People will not think that it is easy
to add more and more teams to the picture - the more they add, the more
messy it will get.

That's quite cool if you take into account what AIP-67 goal is.

pon., 7 lip 2025, 21:53 użytkownik Jarek Potiuk <ja...@potiuk.com> napisał:

> To be honest ugliness of it and the messiness of supporting many teams is
> deliberate choice. This is also to add friction in supporting 'many' teams.
> Supporting 'many' teams had never been a goal for multi-team even in the
> last incarnation. Due to scaling of scheduler especially - we should not
> give the impression that this solution can scale to 'many' teams.
>
> So that choice is pretty deliberate.
>
> pon., 7 lip 2025, 21:27 użytkownik Oliveira, Niko
> <oniko...@amazon.com.invalid> napisał:
>
>> Thanks for getting back to me and sharing a concrete example Jarek!
>>
>> I think overloading the executor field, yet again, with another dimension
>> is going to get quite messy. If you have many teams and many executors per
>> team you now have colons (serving two purposes), semi-colons and commas in
>> one config that will be tremendously long. I think this is a poor user
>> experience. Same goes for the executor configurations themselves.
>> And for someone who's looked through the code, I honestly and
>> respectfully, disagree that this is going to be simpler code to write and
>> maintain. I think it's actually cleaner and easier for both the users and
>> our code base to implement this with first class support, rather than
>> embedding team-ness into configs one-by-one and hard coding that
>> parsing/support across the code base in specific locations where those
>> particular configs are used. It's messy and does not scale well (it smells
>> of executor coupling problem we had years ago, this is going to be
>> team-coupling where random bits of our code base are going to have to have
>> these hacks instead of a first class solution flowing through more
>> transparently).
>>
>> Cheers,
>> Niko
>>
>> ________________________________
>> From: Jarek Potiuk <ja...@potiuk.com>
>> Sent: Monday, July 7, 2025 11:15:16 AM
>> To: dev@airflow.apache.org
>> Subject: RE: [EXT] Discuss: AIP-67 (multi team) now that AIP-82 (External
>> event driven dags) exists
>>
>> CAUTION: This email originated from outside of the organization. Do not
>> click links or open attachments unless you can confirm the sender and know
>> the content is safe.
>>
>>
>>
>> AVERTISSEMENT: Ce courrier électronique provient d’un expéditeur externe.
>> Ne cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous ne pouvez
>> pas confirmer l’identité de l’expéditeur et si vous n’êtes pas certain que
>> le contenu ne présente aucun risque.
>>
>>
>>
>> I realized that I owe Niko an explanation of configuration changes. Again
>> -
>> following the philosophy above - minimal set of changes to "airflow
>> internals". the "minimum" set of changes that will work. I propose the
>> change below that has **no** changes to the way how the
>> current configuration "shared" feature works - it will change the way
>> executors will retrieve their configuration if they are configured
>> "per-team" - and we can 100% bank on existing multi-executors.
>> I believe that will absolutely minimise the set of changes needed to
>> implement multi-team and we will be able to get it "faster" and with "far
>> lower risk" of impacting airflow code and say - 3.1 or 3.2 delivery.
>>
>> Existing multi-executor configuration will be extended to include team
>> prefix. The prefix will be separated with ":", entries for different teams
>> will be separated with ";"
>>
>> [core]
>>
>> executor = team1:KubernetesExecutor,my.custom.module.Executor
>> Class;team2:CeleryExecutor
>>
>> The configuration of executors will also be prefixed with the same team:
>>
>> [team1:kubernetes_executor]
>>
>> api_client_retry_configuration = { "total": 3, "backoff_factor": 0.5 }
>>
>> The environment variables keeping configuration will use ___  (three
>> underscores) to replace ":". For example:
>>
>> AIRFLOW__TEAM1___KUBERNETES_EXECUTOR__API_CLIENT_RETRY_CONFIGURATION`
>>
>>
>> J.
>>
>> On Thu, Jul 3, 2025 at 8:47 AM Jarek Potiuk <ja...@potiuk.com> wrote:
>>
>> > > The direction this one is taking is interesting. If you're really just
>> > trying to make the feature barely possible and mostly targeted towards
>> > managed providers to implement the rest, then I suppose this hits the
>> mark.
>> >
>> > Well actually by taking the direction I took, it's not "mostly for
>> managed
>> > providers" - i see it as it is equally, for managed providers and
>> on-prem
>> > users, but also, following the open-source spirit, philosophically, I
>> think
>> > in Airflow, any such change should be done with those things in mind,
>> > because we are at the stage where we are already "established' and by
>> > innovating on top what we have we have sometimes more to lose than to
>> gain
>> > - so I feel with "deployment' features we should be very careful to
>> > distinguish 'enabling things" vs. 'doing things". My focus with this
>> > iteration was to remove all the roadblocks that make it impossible (or
>> > extremely difficult) to implement "real" multi-team and separation
>> without
>> > modifying airflow core. I though "what is the minimal set of features
>> that
>> > will make it "possible" for someone motivated to deploy a single airflow
>> > for multiple teams.
>> >
>> > * minimise maintenance effort increase
>> > * do not "spoil" the "simple case" - we do not want to add features that
>> > make "simple" implementation more complex the current `docker run -it
>> > apache/airflow standalone` - should be simple and straightforward to run
>> > * if there is anything that involves complex deployment, we should not
>> aim
>> > to make a "turn-key" solution that we will have to support - similarly
>> like
>> > we do with our configuration parameters, we have 100s knobs to turn,
>> and as
>> > long as default settings are reasonable and someone "motivated" can
>> > configure and fine-tune - this configuration and fine-tuning should be
>> left
>> > to them - regardless if they are on-prem or managed. And both should be
>> > able to do it.
>> >
>> > I think it's not only smart technically (we support the low-level basic
>> > features and when someone puts them together and makes it more of a
>> > turn-key solution they are responsible for designing and implementing
>> it -
>> > so we have less maintenance effort. But also it's good from a simple
>> > "open-source business model point of view" - i.e. it's a smart product
>> > decision we should make.
>> >
>> > Why airflow is #18 in OSS rank - of course we have a huge community and
>> > people contributing in their free time, completely voluntarily. And we
>> > cherish, support and encourage it. But let's be honest - if not all
>> those
>> > that make business on top of airflow did not invest literally millions
>> of
>> > dollars (in terms of engineering salary, sponsoring Airflow Summit,
>> > supporting people like me (some smart stakeholders at least who
>> understand
>> > the value of it) who can be good "community spirit" - Airflow would have
>> > order of magnitude less activity, reach, Airflow 3 would not be simply
>> > possible. And this is a good thing that we have those stakeholders that
>> are
>> > interested and make money by turning Airflow into a "turn-key" solution.
>> > This is a fantastic, symbiotic relationship.
>> >
>> > So - what my thinking is - we should NOT make things that make airflow
>> > more turn-key for those complex cases. We should leave it up to those
>> who
>> > want to make it and want to charge money for it. This is cool and great
>> > that they can do - and we should not do it "for them" - but on the other
>> > hand - we should make it possible that those who want to turn airflow
>> into
>> > more complex (say multi-team solution) to make it happen - by providing
>> > them with minimal set of features that make it possible.
>> >
>> > And that also - in a way - keeps the balance between on-prem and managed
>> > implementation.
>> >
>> > Something that I've learned as a rule of thumb is that making a feature
>> > "generic" compared to custom implementation is 3x-10x more expensive
>> (both
>> > in implementation and maintenance). And it means that if an on-prem user
>> > wants to implement something for them (say turn-key multi-team solution
>> for
>> > their case) it will cost `x` , but when a managed provider wants to
>> > implement a generic multi-team it will cost `10x`. But also managed
>> > providers can spread the cost over the premium they will charge to their
>> > users so that they don't have to manage Airflow on their own and pay `x`
>> > for this mult-team feature to develop on their own. And this is a "fair"
>> > choice to make by on-prem users. They might choose what they want to do
>> > then. Also it's fair for managed provider - yes they need to invest
>> more,
>> > but also they have a chance to shine on promoting it and making it more
>> > optimised at scale etc. etc.
>> >
>> > That is my line of thinking.
>> >
>> >
>> > J.
>> >
>> >
>> > On Thu, Jul 3, 2025 at 1:41 AM Oliveira, Niko
>> <oniko...@amazon.com.invalid>
>> > wrote:
>> >
>> >> Hey Jarek,
>> >>
>> >>
>> >> The direction this one is taking is interesting. If you're really just
>> >> trying to make the feature barely possible and mostly targeted towards
>> >> managed providers to implement the rest, then I suppose this hits the
>> mark.
>> >>
>> >> But this is not something we're asking for at Amazon and personally I
>> >> think we should make the feature reasonably usable for those running
>> >> self-managed OSS Airflow as well. There are many users running an
>> on-prem
>> >> Airflow. Getting too hyper-fixated on an implementation that's so
>> >> simplified that it's obtuse and difficult to use by most users seems
>> like
>> >> the wrong approach to me. But you and I have already discussed this at
>> >> length and I haven't convinced you so far, so if I'm the only one with
>> this
>> >> thinking then I'm happy to disagree and commit as we say at Amazon :)
>> >>
>> >>
>> >> > So I would be rather strong on **not** touching the current
>> >> configuration and
>> >>
>> >> simply adding configuration for per-team executors in executor config -
>> >> even if it is uglier and more "low-level".
>> >>
>> >> Can you explain what "adding configuration for per-team executors in
>> >> executor config" would look like? I don't have a concrete sense of
>> what you
>> >> mean by this.
>> >>
>> >> Thanks for your efforts on trying to get this feature agreed to and
>> voted
>> >> on. Looking forward to working on the project in the coming weeks!
>> >>
>> >> Cheers,
>> >> Niko
>> >>
>> >> ________________________________
>> >> From: Jarek Potiuk <ja...@potiuk.com>
>> >> Sent: Tuesday, July 1, 2025 10:26:55 PM
>> >> To: dev@airflow.apache.org
>> >> Subject: RE: [EXT] Discuss: AIP-67 (multi team) now that AIP-82
>> (External
>> >> event driven dags) exists
>> >>
>> >> CAUTION: This email originated from outside of the organization. Do not
>> >> click links or open attachments unless you can confirm the sender and
>> know
>> >> the content is safe.
>> >>
>> >>
>> >>
>> >> AVERTISSEMENT: Ce courrier électronique provient d’un expéditeur
>> externe.
>> >> Ne cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous ne
>> pouvez
>> >> pas confirmer l’identité de l’expéditeur et si vous n’êtes pas certain
>> que
>> >> le contenu ne présente aucun risque.
>> >>
>> >>
>> >>
>> >> Any last comments ? There is a long weekend coming up in the US, so I
>> will
>> >> likely start voting on the updated AIP on Monday 7th.
>> >>
>> >> On Fri, Jun 27, 2025 at 12:41 PM Jarek Potiuk <ja...@potiuk.com>
>> wrote:
>> >>
>> >> > I'd really love to finalise discussion and put it up to a vote some
>> time
>> >> > after the recording from the last dev call is posted - so that more
>> >> > context, details and the LONG discussion we had on it. There is no
>> >> *huge*
>> >> > hurry  - we have strong dependency on Task Isolation and it seems
>> that
>> >> it
>> >> > will still take a bit of time to complete, so I'd say I would love to
>> >> start
>> >> > voting in about a week time - so that maybe at the next dev call we
>> can
>> >> > "seal" the subject. Happy to see any more comments - especially from
>> >> those
>> >> > who have opinions but they had no opportunity to express them.
>> >> >
>> >> > I am personally very happy with the direction it took -
>> simplification
>> >> and
>> >> > "MVP" kind of approach - also I invite the stakeholders of ours to
>> take
>> >> a
>> >> > close look at the scope and what we really propose - I have a feeling
>> >> that
>> >> > we can balance it out - there is something we can make to make it not
>> >> > "worse" for the offerings they have. I think we have a really good
>> >> > symbiotic relationship here, and I would love to leverage that. For
>> one
>> >> -
>> >> > my goal here is to have a minimum number of changes that are
>> impacting
>> >> > maintainability of the open-source airflow - but mostly "opening up
>> some
>> >> > possibilities" - rather than provide turn-key solutions. And mostly
>> >> because
>> >> > this is good for all sides - less maintenance and complexity for OSS
>> >> > maintainers, but more opportunities to make it into "turn-key"
>> >> solutions by
>> >> > the stakeholders, while also allowing the "on-prem" users - if they
>> are
>> >> > highly motivated - to use those features by adding the "turn-key"
>> layer
>> >> on
>> >> > their own. Also adding multi-team should not be at the expense of
>> >> "simple"
>> >> > installations - they should be virtually unaffected.
>> >> >
>> >> > One example of applying this is cutting on "separate config files". I
>> >> > think it moves us closer to a "turn-key" solution but it is not
>> really
>> >> > necessary to achieve the three goals above - that's why in the
>> current
>> >> > proposal this part is completely removed - Sorry Niko, but I still
>> think
>> >> > it's one of the things that falls into this bucket. We can easily
>> remove
>> >> > it, they complicate code, documentation and options the users have,
>> and
>> >> > even if it is a "little" more complex to manage configuration by
>> >> motivated
>> >> > users, it's also an opportunity for "turn-key" option that
>> stakeholders
>> >> can
>> >> > build in their products - and we do not have to maintain it in the
>> >> > open-source. So I would be rather strong on **not** touching the
>> current
>> >> > configuration and simply adding configuration for per-team executors
>> in
>> >> > executor config - even if it is uglier and more "low-level".
>> >> >
>> >> > So if there are some constructive ideas on what can be done to make
>> it
>> >> > "simpler" and less "turn-key" in that respect - I would highly value
>> >> such
>> >> > ideas and comments. If we can cut down something more that is not
>> >> > "necessary" for the three primary goals I came up with - I am more
>> than
>> >> > happy to do it.
>> >> >
>> >> > Just to remind - those are the "extracted" goals. I slightly updated
>> >> them
>> >> > and added to the preamble of the AIP:
>> >> >
>> >> > * less operational overhead for managing multi-team (once AIP-72 is
>> >> > complete) where separate execution environments are important
>> >> > * virtual assets sharing between teams
>> >> > * ability of having "admin" and "team sharing" capability where dags
>> >> from
>> >> > multiple teams can be seen in a single Airflow UI  (requires custom
>> >> RBAC an
>> >> > AIP-56 implementation of Auth Manager - with KeyCloak Auth Manager
>> >> being a
>> >> > reference implementation)
>> >> >
>> >> > J.
>> >> >
>> >> >
>> >> > On Thu, Jun 26, 2025 at 10:53 AM Jarek Potiuk <ja...@potiuk.com>
>> wrote:
>> >> >
>> >> >>
>> >> >>> One technical observation: Now that the dag table no longer has a
>> >> >>> team_id in it, what would the behaviour be when a DAG is attempted
>> to
>> >> move
>> >> >>> between bundles? How do we detect this? (I’m not all convinced
>> that we
>> >> >>> correctly detect duplicate dag ids across bundles today, so I
>> wouldn’t
>> >> >>> assume or rely on the current behaviour.)
>> >> >>>
>> >> >>
>> >> >> Of course - yes, I realise that - that problem was also not handled
>> in
>> >> >> the previous iteration to be honest. That is something that dag
>> bundle
>> >> >> solution allows to solve eventually - but I do not think it's a
>> >> blocker for
>> >> >> the proposed implementation. We will have to eventually add some
>> way of
>> >> >> blocking dags to jump between bundles, we might tackle this
>> >> separately. I
>> >> >> already wanted to propose a separate update to that - but I did not
>> >> want to
>> >> >> complicate the current proposal. One thing at a time. I can,
>> however -
>> >> if
>> >> >> you consider that as a blocker, extend the current AIP with it. Not
>> a
>> >> big
>> >> >> problem. This is however a bit independent from the team_id
>> >> introduction.
>> >> >>
>> >> >> Overall, I am still unconvinced this proposal has enough real user
>> >> >>> benefit over actually separate deployments, and on balance of the
>> >> added
>> >> >>> complexity and maintenance burden I do not think it is worth it.
>> >> >>>
>> >> >>
>> >> >> That makes me sad, I thought that over the course of the discussion
>> I
>> >> >> addressed all the concerns (in this case the concern was "is it
>> worth
>> >> with
>> >> >> the cost and little benefit", but when I did it and heavily limited
>> the
>> >> >> impact, now the concern is "is it worth at all as changes are really
>> >> >> minimal" - and surely, anyone can change and adapt their concerns,
>> over
>> >> >> time,  but that one seems like ever-moving target. I hoped at least
>> for
>> >> >> some acknowledgment of some concerns (complexity in this case) is
>> >> >> addressed, but it seems that you are deeply convinced that we do not
>> >> need
>> >> >> multi-team at all (which is in stark contrast with at least a dozen
>> of
>> >> >> bigger and smaller users of Airflow who submitted talks to Airflow
>> >> summit
>> >> >> (including about 5 or 6 submissions for Airflow 2025) on how they
>> spent
>> >> >> their engineering effort, time and money on trying to achieve
>> something
>> >> >> similar - they assessed that it's worth, you  assess that it's not
>> >> worth.
>> >> >> Somehow I trust our users that they were not spending the money,
>> time
>> >> and
>> >> >> engineering effort to achieve this because they wanted to spend more
>> >> money.
>> >> >> I think they assessed it's worth it. So I want to make it a bit
>> easier
>> >> and
>> >> >> more "proper" way for them to do that.
>> >> >>
>> >> >>>
>> >> >>> Upgrades: it is not easier to upgrade under this multi team
>> proposal,
>> >> >>> but much much harder. This is based on hard earned experience from
>> >> helping
>> >> >>> Astronomer users — having to coordinate upgrades between multiple
>> >> teams
>> >> >>> turns in to a months long slog of the hardest kind of work —
>> people
>> >> work:
>> >> >>> getting other teams to agree to do things that they don’t directly
>> >> care
>> >> >>> about — “It’s working for me, I don’t care about upgrading, we’ll
>> get
>> >> to it
>> >> >>> next quarter” is a refrain I’ve heard many times.
>> >> >>>
>> >> >>
>> >> >> Yes. absolutely - this is why we deferred it until we knew what
>> shape
>> >> >> task isolation and other AIPs we depend on take on. Because it is
>> clear
>> >> >> that pretty much all the problem you explain above are going to be
>> >> solved
>> >> >> with task isolation. And it's not just my opinion. If you want to
>> argue
>> >> >> with it, you likely need to argue with yourself:
>> >> >>
>> https://github.com/apache/airflow/issues/51545#issuecomment-2980038478
>> >> .
>> >> >> Let me quote what you wrote there last week:
>> >> >>
>> >> >> Ash Berlin Taylor wrote:
>> >> >>
>> >> >> > A tight coupling between task-sdk and any "server side" component
>> is
>> >> >> the opposite to one of the goals of AIP-72 (I'm not sure we ever
>> >> explicitly
>> >> >> said this, but the first point of motivation for the AIP says
>> >> "Dependency
>> >> >> conflicts for administrators supporting data teams using different
>> >> versions
>> >> >> of providers, libraries, or python packages")
>> >> >> > In short, my goal with TaskSDK, and the reason for introducing
>> CalVer
>> >> >> and Cadwyn with the execution API is to end up in a world where you
>> can
>> >> >> upgrade the Airflow Scheduler/API server interdependently of any
>> worker
>> >> >> nodes (with the exception that the server must be at least as new as
>> >> the
>> >> >> clients)
>> >> >> > This ability to have version-skew is pretty much non-negotiable
>> to me
>> >> >> and is (other than other languages) one of primary benefits of
>> AIP-72
>> >> >>
>> >> >> If you read yourself from that quote it basically means "it will be
>> >> easy
>> >> >> to upgrade airflow independently of workers". So I am a bit confused
>> >> here.
>> >> >> Yes, I agree it was difficult, but you yourself explain that when
>> >> AIP-72
>> >> >> (which since API-67 has been accepted has always beem prerequisite
>> of
>> >> it)
>> >> >> wrote it will be "easy". So I am not sure why you are bringing it
>> now.
>> >> We
>> >> >> assume AIP-72 will be completed and this problem will be gone. Let's
>> >> not
>> >> >> mention it any more please.
>> >> >>
>> >> >> The true separation from TaskSDK will likely only land in about 3.2
>> >> time
>> >> >>> frame. We are actively working on it, but it’s a slow process of
>> >> untangling
>> >> >>> lots of assumptions made in the code base over the years. Maybe
>> once
>> >> we
>> >> >>> have that my view would be different, but right now I think this
>> >> makes the
>> >> >>> proposal a non-starter. Especially as you are saying that most
>> teams
>> >> will
>> >> >>> have unique connections. If they’ve got those already, then having
>> an
>> >> asset
>> >> >>> trigger use those conns to watch/poll for activity is a much easier
>> >> >>> solution to operate and crucially, to scale and upgrade.
>> >> >>>
>> >> >>
>> >> >> Yes. I perfectly understand that and I am fully aware of potentially
>> >> 3.2
>> >> >> time-frame. And that's fine. Actually I heartily invite you to
>> listen
>> >> to
>> >> >> the part of my talk from Berlin Buzzwords when I was asked for the
>> >> timeline
>> >> >> - https://youtu.be/EyhZOnbwc-4?t=2226 - this link leads to the
>> exact
>> >> >> timeline in my talk . My answer was basically - "3.1" or "3.2", and
>> I
>> >> >> sincerely hope "3.1" but we might not be able to complete it
>> because we
>> >> >> have other things to do (other - is indeed the Task Isolation work
>> >> that you
>> >> >> are leading). And that's perfectly fine. And it absolutely does not
>> >> prevent
>> >> >> us from voting on the AIP now - similarly as we voted on the
>> previous
>> >> >> version of the AIP - knowing that it has some prerequisites a few
>> >> months
>> >> >> ago. Especially that we know that the feature we need from task
>> >> isolation
>> >> >> is "non-negotiable". I.e. it WILL happen. We don't hope for it, we
>> >> know it
>> >> >> will be there. Those are your own words.
>> >> >>
>> >> >>
>> >> >>> >  I think we can’t compare AIP-82 to sharing virtual assets due to
>> >> >>> complexity of it.
>> >> >>>
>> >> >>> Virtual Assets was a mistake, and not how users actually want to
>> use
>> >> >>> them. Mea culpa
>> >> >>>
>> >> >>
>> >> >> This is the first time I hear this - certainly you never raised this
>> >> >> concern on the devlist. So if you have some concerns about virtual
>> >> assets I
>> >> >> think you should raise it on the devlist, because I think everyone
>> >> here is
>> >> >> missing some conversation (or maybe it's just your private opinion
>> that
>> >> >> you never shared with anyone, but maybe it's worth). I would be
>> >> >> interested to hear how the feature that was absolutely most
>> successful
>> >> >> feature of airflow 2 was a mistake. According to the 2024 survey
>> >> >> https://airflow.apache.org/blog/airflow-survey-2024/  - 48% of
>> Airflow
>> >> >> users have been using it, even if it was added as one of the last
>> >> >> big features of Airflow 2. It's the MOST used feature out of all the
>> >> >> features out there. I would be really curious to see how it was a
>> >> mistake
>> >> >> (but  please start a separate thread explaining why you think it
>> was a
>> >> >> mistake, what are your data points and what do you think should be
>> >> fixed.
>> >> >> Just dropping "virtual assets were a mistake" in the middle of
>> >> multi-team
>> >> >> conversation seems completely unjustified without knowing what you
>> are
>> >> >> talking about. So I think, until we know more, this argument has no
>> >> base.
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> S
>> >> >>> To restate my points:
>> >> >>>
>> >> >>> - Sharing a deployment between teams today/in 3.1 is operationally
>> >> more
>> >> >>> complex (both scaling, and upgrades) — this is a con, not a plus.
>> >> >>>
>> >> >>
>> >> >> Surely. But it will be easier when AIP-72 is complete (which I am
>> >> >> definitely looking forward to and as clearly explained in AIP-82,
>> is a
>> >> >> prerequisite of it). Nothing changed here.
>> >> >>
>> >> >>
>> >> >>> - The main user benefit appears to be “allow teams’ DAGs to
>> >> communicate
>> >> >>> via Assets”, in which case we can do that today by putting more
>> work
>> >> in to
>> >> >>> AIP-82’s Asset triggers
>> >> >>>
>> >> >>
>> >> >> No. Lower operational complexity for multi-teams (providing that we
>> >> >> deliver AIP-72) is another benefit. Virtual assets is another, and
>> >> since
>> >> >> there is no ground in "virtual assets is a mistake" statement (not
>> >> until
>> >> >> you explain what you mean by that in a separate discussion) - this
>> is
>> >> also
>> >> >> still a very valid point.
>> >> >>
>> >> >>
>> >> >>> Soon, we will have then be asked about cross-team governance,
>> policy
>> >> >>> enforcement, and potentially unbounded edge cases (e.g.,
>> team-specific
>> >> >>> secrets, roles, quotas). ain, you get this for free with truely
>> >> separate
>> >> >>> deployments already
>> >> >>> allow different teams to use different executors (including
>> multiple
>> >> >>> executors per-team following AIP-61)
>> >> >>>
>> >> >>
>> >> >> Not really. We very explicitly say in the AIP that his is not a goal
>> >> and
>> >> >> that we have no plans for. And yes, using separate executors per
>> team
>> >> is
>> >> >> actually back in the AIP-82 in case you did not notice (and the code
>> >> needed
>> >> >> for it's even implemented and merged already in main by Vincent).
>> >> >>
>> >> >>
>> >> >>> Provably not true right now, and until ~3.2 delivers the full Task
>> >> >>> SDK/Core dependency separation this would be _more_ work to
>> upgrade,
>> >> not
>> >> >>> less, and that work is not shared but still on a central team.
>> >> >>>
>> >> >>
>> >> >> Absolutely - we will wait for AIP-72 completion. I do not want to
>> say
>> >> 3.1
>> >> >> or 3.2 directly - because there are - as you said - a lot of moving
>> >> pieces.
>> >> >> So my target for multi-team is "After AIP-72 is completed". Full
>> stop.
>> >> But
>> >> >> there is nothing wrong with accepting the AIP now and doing
>> preparatory
>> >> >> work in parallel. Similarly as there is no way to have a baby in 1
>> >> month by
>> >> >> 9 women, there is no way adding more effort to task-sdk isolation
>> will
>> >> >> speed it up - we alredy have not only 3 people (you leading it,
>> Kaxil
>> >> and
>> >> >> Amog) but also all the help from me and even 10s of different
>> >> contributors
>> >> >> (for example with the recent db_test cleanup that I took leadership
>> >> on) -
>> >> >> and there are people who wish to work on adding multi-team features.
>> >> Since
>> >> >> the design heavily limits impact on airflow codebase and
>> interactions
>> >> with
>> >> >> task-sdk implementation, there is nothing wrong with starting
>> >> >> implementation in parallel either- amazon team is keen to move it
>> >> forward -
>> >> >> they even already implemented SQS trigger for assets, and we are
>> >> working
>> >> >> together on FAB removal, Keycloak authentication manager - and they
>> >> seem to
>> >> >> still have capacity and drive to progress multi-team. So I am not
>> sure
>> >> if
>> >> >> we are trading off something. There is no "if we work on more on
>> task
>> >> sdk
>> >> >> and drop multi-team things will be faster". Generally in open source
>> >> people
>> >> >> work in the area where they feel they can provide best value - such
>> as
>> >> you
>> >> >> working on task-sdk, me on CI,dev env, they will deliver more value
>> on
>> >> >> multi-team
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> So please, as succinctly as possible, please tell me what the
>> direct
>> >> >>> benefit to users this proposal is over us putting this effort in to
>> >> writing
>> >> >>> better Asset triggers instead?
>> >> >>>
>> >> >>
>> >> >>
>> >> >> * less operational overhead for managing multi-team (once AIP-72 is
>> >> >> complete) where separate execution environments are important
>> >> >> * virtual assets sharing
>> >> >> * ability of having "admin" and "team sharing" capability where dags
>> >> from
>> >> >> multiple teams can be seen in a single Airflow UI  (requires custom
>> >> RBAC)
>> >> >>
>> >> >> None of this can be done via beter asset triggers
>> >> >>
>> >> >>
>> >> >>>
>> >> >>> > On 23 Jun 2025, at 10:57, Jarek Potiuk <ja...@potiuk.com> wrote:
>> >> >>> >
>> >> >>> > My counter-points:
>> >> >>> >
>> >> >>> >
>> >> >>> >> 1. Managing a multi team deployment is not materially different
>> >> from
>> >> >>> >> managing a deployment per team
>> >> >>> >>
>> >> >>> >
>> >> >>> > It's a bit easier - especially when it comes to upgrades
>> (especially
>> >> >>> in the
>> >> >>> > case we are targetting when we are not targetting multi-tenant,
>> but
>> >> >>> several
>> >> >>> > relatively closely cooperating teams with different dependncy
>> >> >>> requiremens
>> >> >>> > and isolation need.
>> >> >>> >
>> >> >>> > 2. The database changes were quite wide-reaching
>> >> >>> >>
>> >> >>> >
>> >> >>> > Yes. that is addressed.
>> >> >>> >
>> >> >>> >
>> >> >>> >> 3. I don’t believe the original AIP (again, I haven’t read the
>> >> updated
>> >> >>> >> proposal or recent messages on the thread. yet) will meet what
>> many
>> >> >>> users
>> >> >>> >> want out of a multiteam solution
>> >> >>> >>
>> >> >>> >
>> >> >>> > I think we will only see when we try. A lot of people thing they
>> >> would,
>> >> >>> > even if they are warned. I know at least one user (Wealthsimple)
>> who
>> >> >>> > definitely want to use it and they got a very detailed
>> explanation
>> >> of
>> >> >>> the
>> >> >>> > idea and understand it well. So I am sure that **some** users
>> would.
>> >> >>> But we
>> >> >>> > do not know how many.
>> >> >>> >
>> >> >>> >
>> >> >>> >> To expand on those points a bit more
>> >> >>> >>
>> >> >>> >> On 1. The only components that are shared are, I think, the
>> >> scheduler
>> >> >>> and
>> >> >>> >> the API server, and it’s arguable if that is actually a good
>> idea
>> >> >>> given
>> >> >>> >> those are likely to be the most performance sensitive components
>> >> >>> anyway.
>> >> >>> >>
>> >> >>> >> Additionally the fact that the scheduler is a shared component
>> >> makes
>> >> >>> >> upgrading it almost a non starter as you would likely need
>> buy-in,
>> >> >>> changes,
>> >> >>> >> and testing form ALL teams using it. I’d argue that this is a
>> huge
>> >> >>> negative
>> >> >>> >> until we finish off the version indepence work of AIP-72.
>> >> >>> >>
>> >> >>> >
>> >> >>> > Quite disagree here - especially that our target is that
>> task-sdk is
>> >> >>> > supposed to provide all isolation that is needed. There should
>> be 0
>> >> >>> changes
>> >> >>> > in the dags needed to upgrade scheduler, api_server, triggerer -
>> >> >>> precisely
>> >> >>> > because we introduced backwards-compatible task-sdk.
>> >> >>> >
>> >> >>> > On 3 my complaint is essentially that this doesn’t go nearly far
>> >> >>> enough. It
>> >> >>> >> doesn’t allow read only views to other teams dags. I don’t
>> think it
>> >> >>> allows
>> >> >>> >> you to be in multiple teams at once. You can’t share a
>> connection
>> >> >>> between
>> >> >>> >> teams but only allow certain specified dags to access it, but
>> would
>> >> >>> have to
>> >> >>> >> either be globally usable, or duplicated-and-kept-in-sync
>> between
>> >> >>> teams. In
>> >> >>> >> short I think it fall short of being useful..
>> >> >>> >>
>> >> >>> >
>> >> >>> > Oh absolutely all that is possible (except sharing single
>> >> connections
>> >> >>> > between multiple teams - which is a very niche use cases and
>> >> >>> duplication
>> >> >>> > here is perfectly ok as first approximation - and if we need
>> more we
>> >> >>> can
>> >> >>> > add it later).
>> >> >>> >
>> >> >>> > Auth manager RBAC and access is abstracted away, and the Keyclock
>> >> >>> Manager
>> >> >>> > implemented by Vincent allows to manage completely independent
>> and
>> >> >>> separate
>> >> >>> > RBAC based on arguments and resources provided by Airflow. There
>> is
>> >> >>> nothing
>> >> >>> > to prevent the user who configures KeyCloak RBAC to define it in
>> the
>> >> >>> way:
>> >> >>> >
>> >> >>> > if group a > allow to read a and write b
>> >> >>> > if group b > alllow to write b but not a
>> >> >>> >
>> >> >>> > and any other combinations. KeyCloak implementation - pretty
>> >> advanced
>> >> >>> > already - (and design of auth manager) completely abstracts away
>> >> both
>> >> >>> > authentication and authorization to KeyCloak and KeyCloak has
>> RBAC
>> >> >>> > management built in. Also any of the users can write their own -
>> >> even
>> >> >>> > hard-coded authentication manager to do the same if they do not
>> >> want to
>> >> >>> > have configurable KeyCloak. Even SimpleAuthManager could be
>> >> hard-coded
>> >> >>> to
>> >> >>> > provide thiose features.
>> >> >>> >
>> >> >>> >
>> >> >>> >>
>> >> >>> >> So on the surface, I’m no more in favour of using dag bundle as
>> a
>> >> >>> >> replacement for team id as I think most of the above points
>> still
>> >> >>> stand.
>> >> >>> >>
>> >> >>> >
>> >> >>> > We disagree here.
>> >> >>> >
>> >> >>> >>
>> >> >>> >> My counter proposal: We do _nothing_ to core airflow. We work on
>> >> >>> improving
>> >> >>> >> the event-based trigger o fdags (write more triggers for
>> read/check
>> >> >>> remote
>> >> >>> >> Assets etc) so that teams can have 100% isolated deployments but
>> >> still
>> >> >>> >> trigger dags based on asset events from other teams.
>> >> >>> >>
>> >> >>> >
>> >> >>> > That does not solve any of the other design goals - only allows
>> to
>> >> >>> trigger
>> >> >>> > assets a bit more easily (but also it's not entirely solved by
>> >> AIP-82
>> >> >>> > because it does not solve virtual assets - only ones that have
>> >> defined
>> >> >>> > triggerer and "something" to listen on - which is way more
>> complex
>> >> than
>> >> >>> > just defining asset in a Dag and using it in another). I think we
>> >> can't
>> >> >>> > compare AIP-82 to sharing virtual assets due to complexity of
>> it. I
>> >> >>> > explained it in the doc.
>> >> >>> >
>> >> >>> >
>> >> >>> > I will now go and catch up with the long thread and updated
>> proposal
>> >> >>> and
>> >> >>> >> come back.
>> >> >>> >>
>> >> >>> >
>> >> >>> > Please. I hope the above explaination will help in better
>> >> >>> understanding of
>> >> >>> > the proposal, because I think you had some assumptions that do
>> not
>> >> >>> hold any
>> >> >>> > more with the new proposal.
>> >> >>> >
>> >> >>> > J.
>> >> >>> >
>> >> >>> >
>> >> >>> >>
>> >> >>> >>> On 23 Jun 2025, at 05:54, Jarek Potiuk <ja...@potiuk.com>
>> wrote:
>> >> >>> >>>
>> >> >>> >>> Just to clarify the relation - I updated the AIP now to refer
>> to
>> >> >>> AIP-82
>> >> >>> >> and
>> >> >>> >>> to explain relation between the "cross-team" and
>> "cross-airflow"
>> >> >>> asset
>> >> >>> >>> triggering - this is what I added:
>> >> >>> >>>
>> >> >>> >>> Note that there is a relation between AIP-82 ("External Driven
>> >> >>> >> Scheduling")
>> >> >>> >>> and this part of the functionality. When you have multiple
>> >> instances
>> >> >>> of
>> >> >>> >>> Airflow, you can use shared datasets - "Physical datasets" -
>> that
>> >> >>> several
>> >> >>> >>> Airflow Instances can use - for example there could be an S3
>> >> object
>> >> >>> that
>> >> >>> >> is
>> >> >>> >>> produced by one airflow instance, and consumed by another. That
>> >> >>> requires
>> >> >>> >>> deferred trigger to monitor for such datasets, and appropriate
>> >> >>> >> permissions
>> >> >>> >>> to the external dataset, and you could achive similar result to
>> >> >>> >> cross-team
>> >> >>> >>> dataset triggering (but cross airflow). However the feature of
>> >> >>> sharing
>> >> >>> >>> datasets between the teams also works for virtual assets, that
>> do
>> >> not
>> >> >>> >> have
>> >> >>> >>> physically shared "objects" and trigger that is monitoring for
>> >> >>> changes in
>> >> >>> >>> such asset.
>> >> >>> >>>
>> >> >>> >>> J.
>> >> >>> >>>
>> >> >>> >>>
>> >> >>> >>> On Mon, Jun 23, 2025 at 6:38 AM Jarek Potiuk <ja...@potiuk.com
>> >
>> >> >>> wrote:
>> >> >>> >>>
>> >> >>> >>>>> From a quick glance, the updated AIP didn't seem to have any
>> >> >>> reference
>> >> >>> >> to
>> >> >>> >>>>> AIP-82, which surprised me, but will take a more detailed
>> read
>> >> >>> through.
>> >> >>> >>>>
>> >> >>> >>>> Yep. It did not - because I did not think it was needed or
>> even
>> >> very
>> >> >>> >>>> important after the simplifications. AIP-82 has a different
>> >> scope,
>> >> >>> >> really.
>> >> >>> >>>> It only helps when the Assets are "real" data files which we
>> have
>> >> >>> >> physical
>> >> >>> >>>> triggers for, it's slightly related - sharing datasets between
>> >> teams
>> >> >>> >>>> (including those that do not require physical files and
>> >> triggers) is
>> >> >>> >> still
>> >> >>> >>>> possible in the design we have now, but it's not (and never
>> was)
>> >> the
>> >> >>> >>>> **only** reason for having multi-team. There always was (and
>> >> still
>> >> >>> is)
>> >> >>> >> the
>> >> >>> >>>> possibility of having a common, distinct environments (i.e.
>> >> >>> dependencies
>> >> >>> >>>> and providers) per team, the possibility of having connections
>> >> and
>> >> >>> >>>> variables that are only accessible to one team and not the
>> other,
>> >> >>> and
>> >> >>> >>>> isolating workload execution (all that while allowing to
>> manage
>> >> >>> multiple
>> >> >>> >>>> team and schedule things with single deployment). That did not
>> >> >>> change.
>> >> >>> >> What
>> >> >>> >>>> changed a lot is that it is now way simpler, something that we
>> >> can
>> >> >>> >>>> implement without heavy changes to the codebase - and give it
>> to
>> >> our
>> >> >>> >> users,
>> >> >>> >>>> so that they can assess if this is something they need without
>> >> too
>> >> >>> much
>> >> >>> >>>> risk and effort.
>> >> >>> >>>>
>> >> >>> >>>> This was - I believe the main concern, that the value we get
>> from
>> >> >>> it is
>> >> >>> >>>> not dramatic, but the required changes are huge. This
>> "redesign"
>> >> >>> changes
>> >> >>> >>>> the equation - the value is still unchanged, but the cost of
>> >> >>> >> implementing
>> >> >>> >>>> it and impact on the Airflow codebase is much smaller. I still
>> >> have
>> >> >>> not
>> >> >>> >>>> heard back from Ash if my proposal responds to his original
>> >> concern
>> >> >>> >> though,
>> >> >>> >>>> so I am mostly guessing (also based on the positive impact of
>> >> >>> others)
>> >> >>> >> that
>> >> >>> >>>> yes it does. But to be honest I am not sure and I would love
>> to
>> >> hear
>> >> >>> >> back,
>> >> >>> >>>> I decided to update the AIP to reflect it - regardless,
>> because I
>> >> >>> think
>> >> >>> >> the
>> >> >>> >>>> simplification I proposed keeps the original goals, but is
>> indeed
>> >> >>> way
>> >> >>> >>>> simpler.
>> >> >>> >>>>
>> >> >>> >>>>> This is a very difficult thread to catch up on.
>> >> >>> >>>>
>> >> >>> >>>> Valid point. Let me summarize what is the result:
>> >> >>> >>>>
>> >> >>> >>>> * I significantly simplified the implementation proposal
>> >> comparing
>> >> >>> to
>> >> >>> >> the
>> >> >>> >>>> original version
>> >> >>> >>>> * main simplification is very limited impact on existing
>> >> database -
>> >> >>> >>>> without "ripple effect" that would require us to change a lot
>> of
>> >> >>> tables,
>> >> >>> >>>> including their primary keys, and heavily impact the UI
>> >> >>> >>>> * this is now more of an incremental change that can be
>> >> implemented
>> >> >>> way
>> >> >>> >>>> faster and with far less risk
>> >> >>> >>>> * updated idea is based on leveraging bundles (already part of
>> >> our
>> >> >>> data
>> >> >>> >>>> model) to map them (many-to-one) to a team - which requires to
>> >> just
>> >> >>> >> extend
>> >> >>> >>>> the data model with bundle mapping and add team_id to
>> connections
>> >> >>> and
>> >> >>> >>>> variables. Those are all needed DB changes.
>> >> >>> >>>>
>> >> >>> >>>> The AIP is updated - in a one single big change so It should
>> be
>> >> >>> easy to
>> >> >>> >>>> compare the changes:
>> >> >>> >>>>
>> >> >>> >>
>> >> >>>
>> >>
>> https://cwiki.apache.org/confluence/pages/viewpreviousversions.action?pageId=294816378
>> >> >>> >>>> -> I even named the version appropriately "Simplified
>> multi-team
>> >> >>> AIP" -
>> >> >>> >> you
>> >> >>> >>>> can select and compare v.65 with v.66 to see the exact
>> >> differences I
>> >> >>> >>>> proposed.
>> >> >>> >>>>
>> >> >>> >>>> I hope it will be helpful to catch up and for those who did
>> not
>> >> >>> follow,
>> >> >>> >> to
>> >> >>> >>>> be able to make up their minds about it.
>> >> >>> >>>>
>> >> >>> >>>> J.
>> >> >>> >>>>
>> >> >>> >>>>
>> >> >>> >>>>
>> >> >>> >>>> On Mon, Jun 23, 2025 at 4:35 AM Vikram Koka
>> >> >>> >> <vik...@astronomer.io.invalid>
>> >> >>> >>>> wrote:
>> >> >>> >>>>
>> >> >>> >>>>> This is a very difficult thread to catch up on.
>> >> >>> >>>>> I will take a detailed look at the AIP update to try to
>> figure
>> >> out
>> >> >>> the
>> >> >>> >>>>> changes in the proposal.
>> >> >>> >>>>>
>> >> >>> >>>>> From a quick glance, the updated AIP didn't seem to have any
>> >> >>> reference
>> >> >>> >> to
>> >> >>> >>>>> AIP-82, which surprised me, but will take a more detailed
>> read
>> >> >>> through.
>> >> >>> >>>>>
>> >> >>> >>>>> Vikram
>> >> >>> >>>>>
>> >> >>> >>>>>
>> >> >>> >>>>>
>> >> >>> >>>>> On Sun, Jun 22, 2025 at 1:44 AM Pavankumar Gopidesu <
>> >> >>> >>>>> gopidesupa...@gmail.com>
>> >> >>> >>>>> wrote:
>> >> >>> >>>>>
>> >> >>> >>>>>> Thanks Jarek, that's a great update on this AIP, now it's
>> much
>> >> >>> more
>> >> >>> >> slim
>> >> >>> >>>>>> down.
>> >> >>> >>>>>>
>> >> >>> >>>>>> left a minor comment. :) Overall looking great.
>> >> >>> >>>>>>
>> >> >>> >>>>>> Pavan
>> >> >>> >>>>>>
>> >> >>> >>>>>> On Sat, Jun 21, 2025 at 3:10 PM Jens Scheffler
>> >> >>> >>>>> <j_scheff...@gmx.de.invalid
>> >> >>> >>>>>>>
>> >> >>> >>>>>> wrote:
>> >> >>> >>>>>>
>> >> >>> >>>>>>> Thanks for the rework/update of the AIP-72!
>> >> >>> >>>>>>>
>> >> >>> >>>>>>> Just a few small comments but overall I like it as it is
>> much
>> >> >>> leaner
>> >> >>> >>>>>>> than originally planned and is in a level of complexity
>> that
>> >> it
>> >> >>> >> really
>> >> >>> >>>>>>> seems to be a benefit to close the gap as described.
>> >> >>> >>>>>>>
>> >> >>> >>>>>>> On 21.06.25 14:52, Jarek Potiuk wrote:
>> >> >>> >>>>>>>> I updated the AIP - including architecture images and
>> >> reviewed
>> >> >>> it
>> >> >>> >>>>>> (again)
>> >> >>> >>>>>>>> and corrected any ambiguities and places where it needed
>> to
>> >> be
>> >> >>> >>>>> changed.
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> I think the current state
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>
>> >> >>> >>>>>>
>> >> >>> >>>>>
>> >> >>> >>
>> >> >>>
>> >>
>> https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-67+Multi-team+deployment+of+Airflow+components
>> >> >>> >>>>>>>> - nicely describes the proposal.
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> Comparing to the previous one:
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> 1. The DB changes are far less intrusive - no ripple
>> effect
>> >> on
>> >> >>> >>>>> Airflow
>> >> >>> >>>>>>>> 2. There is no need to merge configurations and provide
>> >> >>> different
>> >> >>> >>>>> set
>> >> >>> >>>>>> of
>> >> >>> >>>>>>>> configs per team - we can add it later but I do not see
>> why
>> >> we
>> >> >>> need
>> >> >>> >>>>> it
>> >> >>> >>>>>> in
>> >> >>> >>>>>>>> this simplified version
>> >> >>> >>>>>>>> 3. We can still configure a different set of executors per
>> >> team
>> >> >>> -
>> >> >>> >>>>> that
>> >> >>> >>>>>> is
>> >> >>> >>>>>>>> already implemented (we just need to wire it to the
>> bundle ->
>> >> >>> team
>> >> >>> >>>>>>> mapping).
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> I think it will be way simpler and faster to implement
>> this
>> >> way
>> >> >>> and
>> >> >>> >>>>> it
>> >> >>> >>>>>>>> should serve as MVMT -> Minimum Viable Multi Team that we
>> can
>> >> >>> give
>> >> >>> >>>>> our
>> >> >>> >>>>>>>> users so that they can provide feedback.
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> J.
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>> On Fri, Jun 20, 2025 at 8:33 AM Jarek Potiuk <
>> >> ja...@potiuk.com>
>> >> >>> >>>>> wrote:
>> >> >>> >>>>>>>>
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>> I like this iteration a bit more now for sure, thanks
>> for
>> >> >>> being
>> >> >>> >>>>>>> receptive
>> >> >>> >>>>>>>>>> to feedback! :)
>> >> >>> >>>>>>>>>>
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>> This now becomes quite close to what was proposing
>> before,
>> >> we
>> >> >>> now
>> >> >>> >>>>>> again
>> >> >>> >>>>>>>>>> have a team ID (which I think is really needed here,
>> glad
>> >> to
>> >> >>> see
>> >> >>> >>>>> it
>> >> >>> >>>>>>> back)
>> >> >>> >>>>>>>>>> and it will be used for auth management, configuration
>> >> >>> >>>>> specification,
>> >> >>> >>>>>>> etc
>> >> >>> >>>>>>>>>> but will be carried by Bundle instead of the dag model.
>> >> Which
>> >> >>> as
>> >> >>> >>>>> you
>> >> >>> >>>>>>> say
>> >> >>> >>>>>>>>>> “For that we will need to make sure that both
>> api-server,
>> >> >>> >>>>> scheduler
>> >> >>> >>>>>> and
>> >> >>> >>>>>>>>>> triggerer have access to the "bundle definition" (to
>> >> perform
>> >> >>> the
>> >> >>> >>>>>>> mapping)"
>> >> >>> >>>>>>>>>> which honestly doesn’t feel too much different from the
>> >> >>> original
>> >> >>> >>>>>>> proposal
>> >> >>> >>>>>>>>>> we had last week of adding it to Dag table and ensuring
>> >> it’s
>> >> >>> >>>>>> available
>> >> >>> >>>>>>>>>> everywhere. but either way I’m happy to meet in the
>> middle
>> >> and
>> >> >>> >>>>> keep
>> >> >>> >>>>>> it
>> >> >>> >>>>>>> on
>> >> >>> >>>>>>>>>> Bundle if everyone else feels that’s a more suitable
>> >> location.
>> >> >>> >>>>>>>>>>
>> >> >>> >>>>>>>>> I think the big difference is the "ripple effect" that
>> was
>> >> >>> >>>>> discussed
>> >> >>> >>>>>> in
>> >> >>> >>>>>>>>>
>> >> >>> https://lists.apache.org/thread/78vndnybgpp705j6sm77l1t6xbrtnt5c
>> >> >>> >>>>>> (and I
>> >> >>> >>>>>>>>> believe - correct me if I am wrong Ash - important
>> trigger
>> >> for
>> >> >>> the
>> >> >>> >>>>>>>>> discussion) so far what we wanted is to extend the
>> primary
>> >> key
>> >> >>> and
>> >> >>> >>>>> it
>> >> >>> >>>>>>> would
>> >> >>> >>>>>>>>> ripple through all the pieces of Airflow -> models, API,
>> UI
>> >> >>> etc.
>> >> >>> >>>>> ...
>> >> >>> >>>>>>>>> However - we already have `bundle_name" and
>> "bundle_version"
>> >> >>> in the
>> >> >>> >>>>>> Dag
>> >> >>> >>>>>>>>> model. So I think when we add a separate table where we
>> map
>> >> the
>> >> >>> >>>>> bundle
>> >> >>> >>>>>>> to
>> >> >>> >>>>>>>>> the team, the "ripple effect" will be almost 0. We do not
>> >> want
>> >> >>> to
>> >> >>> >>>>>> change
>> >> >>> >>>>>>>>> primary key, we do not want to change UI in any way
>> (except
>> >> >>> >>>>> filtering
>> >> >>> >>>>>> of
>> >> >>> >>>>>>>>> DAGs available based on your team - but that will be
>> >> handled in
>> >> >>> >>>>> Auth
>> >> >>> >>>>>>>>> Manager and will not impact UI in any way, I think
>> that's a
>> >> >>> huge
>> >> >>> >>>>>>>>> simplification of the implementation, and if we agree to
>> it
>> >> - i
>> >> >>> >>>>> think
>> >> >>> >>>>>> it
>> >> >>> >>>>>>>>> should speed up the implementation significantly. There
>> are
>> >> >>> only a
>> >> >>> >>>>>>> limited
>> >> >>> >>>>>>>>> number of times where you need to look up the team_id -
>> so
>> >> >>> having
>> >> >>> >>>>> the
>> >> >>> >>>>>>>>> bundle -> team mapping in a separate table and having to
>> >> look
>> >> >>> them
>> >> >>> >>>>> up
>> >> >>> >>>>>>>>> should not be a problem. And it has much less complexity
>> and
>> >> >>> >>>>>>>>> "ripple-effect" through the codebase (for example I could
>> >> >>> imagine
>> >> >>> >>>>> 100s
>> >> >>> >>>>>>> or
>> >> >>> >>>>>>>>> thousands already written tests that would have to be
>> >> adapted
>> >> >>> if we
>> >> >>> >>>>>>> changed
>> >> >>> >>>>>>>>> the primary key - where there will be pretty much zero
>> >> impact
>> >> >>> on
>> >> >>> >>>>>>> existing
>> >> >>> >>>>>>>>> tests if we just add bundle -> team lookup table.
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>> One other thing I’d point out is that I think including
>> >> >>> executors
>> >> >>> >>>>> per
>> >> >>> >>>>>>>>>> team is a very easy win and quite possible without much
>> >> work.
>> >> >>> I
>> >> >>> >>>>>> already
>> >> >>> >>>>>>>>>> have much of the code written. Executors are already
>> aware
>> >> of
>> >> >>> >>>>> Teams
>> >> >>> >>>>>>> that
>> >> >>> >>>>>>>>>> own them (merged), I have a PR open to have
>> configuration
>> >> per
>> >> >>> team
>> >> >>> >>>>>>> (with a
>> >> >>> >>>>>>>>>> quite simple and isolated approach, I believe you
>> approved
>> >> >>> Jarek).
>> >> >>> >>>>>> The
>> >> >>> >>>>>>> last
>> >> >>> >>>>>>>>>> piece is updating the scheduling logic to route tasks
>> from
>> >> a
>> >> >>> >>>>>> particular
>> >> >>> >>>>>>>>>> Bundle to the correct executor, which shouldn’t be much
>> >> work
>> >> >>> >>>>> (though
>> >> >>> >>>>>> it
>> >> >>> >>>>>>>>>> would be easier if the Task models had a column for the
>> >> team
>> >> >>> they
>> >> >>> >>>>>>> belong
>> >> >>> >>>>>>>>>> to, rather than having to look up the Dag and Bundle to
>> get
>> >> >>> the
>> >> >>> >>>>>> team) I
>> >> >>> >>>>>>>>>> have a branch where I was experimenting with this logic
>> >> >>> already.
>> >> >>> >>>>>>>>>> Any who, long story short, I don’t think we necessarily
>> >> need
>> >> >>> to
>> >> >>> >>>>>> remove
>> >> >>> >>>>>>>>>> this piece from the project's scope if it is already
>> partly
>> >> >>> done
>> >> >>> >>>>> and
>> >> >>> >>>>>>> not
>> >> >>> >>>>>>>>>> too difficult.
>> >> >>> >>>>>>>>>>
>> >> >>> >>>>>>>>> Yeah. I hear you here again. Certainly I would not want
>> to
>> >> just
>> >> >>> >>>>>>>>> **remove** it from the code. And, yep I totally forgot we
>> >> have
>> >> >>> it
>> >> >>> >>>>> in.
>> >> >>> >>>>>>> And
>> >> >>> >>>>>>>>> if we can make it in, easily (which it seems we can) - we
>> >> can
>> >> >>> also
>> >> >>> >>>>>>> include
>> >> >>> >>>>>>>>> it in the first iteration. What I wanted to avoid really
>> >> (from
>> >> >>> the
>> >> >>> >>>>>>> original
>> >> >>> >>>>>>>>> design) - again trying to simplify it, limit the changes,
>> >> and
>> >> >>> >>>>> speed up
>> >> >>> >>>>>>>>> implementation. And there is one "complexity" that I
>> wanted
>> >> to
>> >> >>> >>>>> avoid
>> >> >>> >>>>>>>>> specifically - having to have separate , additional
>> >> >>> configuration
>> >> >>> >>>>> per
>> >> >>> >>>>>>> team.
>> >> >>> >>>>>>>>> Not only because it complicates already complex
>> >> configuration
>> >> >>> >>>>> handling
>> >> >>> >>>>>>> (I
>> >> >>> >>>>>>>>> know we have PR for that) but mostly because if it is not
>> >> >>> needed,
>> >> >>> >>>>> we
>> >> >>> >>>>>> can
>> >> >>> >>>>>>>>> simplify documentation and explain to our users easier
>> what
>> >> >>> they
>> >> >>> >>>>> need
>> >> >>> >>>>>>> to do
>> >> >>> >>>>>>>>> to have their own multi-team setup. And I am quite open
>> to
>> >> >>> keeping
>> >> >>> >>>>>>>>> multiple-executors if we can avoid complicating
>> >> configuration.
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>> But I think some details of that and whether we really
>> need
>> >> >>> >>>>> separate
>> >> >>> >>>>>>>>> configuration might also come as a result of updating the
>> >> AIP
>> >> >>> - I
>> >> >>> >>>>> am
>> >> >>> >>>>>> not
>> >> >>> >>>>>>>>> quite sure now if we need it, but we can discuss it when
>> we
>> >> >>> >>>>> iterate on
>> >> >>> >>>>>>> the
>> >> >>> >>>>>>>>> AIP.
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>> J.
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>>>
>> >> >>> >>>>>>>
>> >> >>> >>>>>>>
>> >> >>>
>> ---------------------------------------------------------------------
>> >> >>> >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
>> >> >>> >>>>>>> For additional commands, e-mail:
>> dev-h...@airflow.apache.org
>> >> >>> >>>>>>>
>> >> >>> >>>>>>>
>> >> >>> >>>>>>
>> >> >>> >>>>>
>> >> >>> >>>>
>> >> >>> >>
>> >> >>> >>
>> >> >>> >>
>> >> ---------------------------------------------------------------------
>> >> >>> >> To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
>> >> >>> >> For additional commands, e-mail: dev-h...@airflow.apache.org
>> >> >>>
>> >> >>>
>> >>
>> >
>>
>

Reply via email to