4 June 2024

Agenda

  • Agreeing on the Principles to drive Airflow 3 development.

    Proposed principles to start the discussions: 
    • Consider shipping Airflow 3 with barebones deployment options to optimize for speed and early feedback, instead of coverage for all deployment needs.
      • Optimize to get foundational pieces in and not "let perfect be the enemy of good"
    • Smoother migration path between AF 2 & 3 especially for DAG Authors with the existing official Airflow providers. 
    • Start requiring to put "Airflow 2 only", "Airflow 3 only", "Airflow 2 + 3" labels on all non-completed AIPs also review and cleanup all remaining/old/outdated AIPs.
    • Working on features that solidify Airflow as the modern Orchestrator that also has state-of-the-art support for Data, AI & ML workloads.
      • This includes enhancing scalability, performance, and enterprise-level security, adhering to the principle of least privilege.
      • Making Airflow aware of what's happening in the task to provide better auditability, lineage & observability
    • Set up the codebase for the next 3-5 years.
      • Reducing matrix of supported combinations for reducing complexity in testing & development. E.g Remove MySQL support to reduce the test matrix
      • Simplifying codebase & standardize architecture (e.g consolidating serialization methods)
      • Remove deprecations
      • Consider optimizing development workflows (core airflow vs. provider, chart development)
    • Simplify the Learning Curve for new Airflow users
      • Decrease time from running the install command to first DAG
      • Decrease the boilerplate code needed to run first dag/task
    • Shift focus on Airflow 2 to stability: bug fixes + security fixes after AF 2.10. This should continue for a longer period of time after AF 3 release
    • Target a shorter cycle to release Airflow 3
      • so that Airflow 2 branches for features don't diverge
      • have enough time between Airflow 3 release and Airflow Summit 2025, so we can have talks about Successful migrations
  • Agreeing on the Guidelines that help decide if a feature should be in Airflow 3 or not.

    Proposed guidelines:
    • Alignment with Core Principles
    • Community Demand and Feedback
    • Impact on Scalability and Performance
    • Implementation Complexity and Maintenance
    • Backward Compatibility and Migration Effort
    • Workstream Ownership (can be more than one). If no one is available to lead the workstream, the feature will be parked until a dedicated owner is found
    • For big epics, AIPs & a successful vote on the dev mailing list  


  • Next steps (that we won't cover in the first call):
    • How do we collaborate and discuss efficiently (e.g. email, cwiki (accessible for all?), Google docs)?
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
    • Which workstreams (& workstream Owners) should we define?
    • Discussion to streamline the development of Airflow 3 (development and branching strategy)
      • Separating dev for Providers & Airflow (question), and 
      • Separate branch for Airflow 2 
      • CI changes for the above
    • Separate discussions for each big workstream including one for items to remove & refactor (e.g dropping MySQL)
    • Finalize Scope + Timelines / Milestones
    • Migration Utilities
    • Communication to users / stakeholders
    • Progress check-ins

Attendees


Name
1Kaxil Naik
2Elad Kalif
3Vikram Koka
4Ash Berlin-Taylor
5Brent Bovenzi
6

Jarek Potiuk

7

Bugra Ozturk

8Rob Caskey
9Jed Cunningham
10Constance Martineau
11Maciej Obuchowski
12Rajesh Bishundeo
13

Niko Oliveira

14Shubham Mehta
15John Jackson
16Shahar Epstein
17

Indraneel Dongaonkar

18

Pankaj Koti

19

Michal Modras

20Rafal Biegacz
21

Aritra Basu

22

Briana Okyere

23

Stefan Krawczyk

24

Igor Kholopov

25

Tamara Fingerlin

26

Abhishek Bhakat


Summary

The following principles were agreed upon to drive Airflow 3 development:

  • For the features that require breaking changes, ship Airflow 3 with the foundational code to allow for iterative development, optimizing for speed and a quicker feedback cycle.
    • Additional features that do not require breaking changes can be included in minor releases such as 3.1, 3.2, and beyond since we follow SemVer.
    • Discussion points:
      • Examples:
        • Add the hook points with a few references (fetcher for GCS, S3, Git) for DAG Versioning's Execution AIP (AIP-66)
        • Removing dependency on FAB in Core: The new plugin framework might support only a few functionalities, which are then built upon later.
        • For the multi-language AIP, start with only Python + one more language in AF 3.0 and then 3.1 and later minor versions can have more support for language like Typescript
      • Identify users who would be willing to give feedback during dev and beta snapshots. The Astronomer, MWAA, and GCC teams can help identify these.
  • Ensure a smoother migration path between Airflow 2 and 3, particularly for DAG authors using the existing official Airflow providers.
    • Directionally the time required to update DAGs should be measured in hours, not days or months. 
    • Action Items:
      • Update the AIP template to ask for the level of effort (manual and automated) needed for the users to adapt to the breaking changes. This should include high-level details on what could go in the upgrade utilities. This will help the AIP authors consciously think through the migration efforts. (Unknown User (kaxilnaik) )
  • For AIPs, be explicit about what's for AF 3.0 and what's for the next minor releases (3.1, 3.2, ..)
    • Action Items:
      • Complete the housekeeping of the AIPs (Unknown User (kaxilnaik) ):
        • Move the AIPs that we don't plan to work on in Abandoned state
        • Add labels if an AIP is for Airflow 2, 3.0 or >=3.1. These labels will be used via Macros to auto-populate the tables in Airflow Improvement Proposals, making it a good page for Roadmap items
  • Build features that solidify Airflow as the modern Orchestrator that has state-of-the-art support for Data, AI & ML workloads.
    • This includes enhancing scalability, performance, and enterprise-level security, adhering to the principle of least privilege.
    • Making Airflow aware of what's happening in the task to provide better auditability, lineage & observability
  • Set up the codebase for the next 3-5 years.
    • Reducing matrix of supported combinations for reducing complexity in testing & development. E.g Remove MySQL support to reduce the test matrix
    • Simplifying codebase & standardize architecture (e.g consolidating serialization methods)
    • Remove deprecations
    • Consider optimizing development workflows (core airflow vs. provider, chart development)
  • Simplify the Learning Curve for new Airflow users
    • Decrease time from running the install command to first DAG
    • Decrease the boilerplate code needed to run first dag/task
    • Action Items:
      • Write a first draft of a doc on the different personas of Airflow users & current state. This will help tailor the learning curve via docs & tutorials as well as tailor features towards that persona. (Unknown User (eladkal) )
  • Shift focus on Airflow 2 to stability: bug fixes + security fixes after AF 2.10. This should continue for a longer period of time after AF 3 release
    • The provider release will continue to happen independently of the core Airflow.
    • Discussion points:
      • After the AF 2.10 release (~Aug), the "main" branch will become Airflow 3, and the release manager will cherry-pick anything targeting Airflow 2 into the Airflow 2 release branch. 
      • The primary focus for AF 2 will shift to reliability. If certain features need to go in AF 2, they will be done by cherry-picking or opening PRs targeting the AF 2 branch.
  • Target a shorter cycle to release Airflow 3
    • so that Airflow 2 branches for features don't diverge
    • users have enough time between Airflow 3 release and Airflow Summit 2025, so we can have talks about Successful migrations
    • Discussion point:
      • This means the realistic target is March-April 2025. This is to allow users enough time to migrate to AF 3 and use it so they can submit CFPs around May-July 2025.
      • The focus for AF Summit 2025 would be on Migration stories & features of Airflow 3

The following Guidelines were agreed upon that helps decide if a feature should be in Airflow 3 or not.

  • Alignment with Core Principles (mentioned above)
  • Workstream Ownership (can be more than one). If no one is available to lead the workstream, the feature will be parked until a dedicated owner is found
  • Community Demand and Feedback
  • Impact on Scalability, Performance & Security 
  • Backward Compatibility and Migration Effort
  • Implementation Complexity and Maintenance
  • For big features, discussion on AIPs & a successful vote on the dev mailing list 

Next steps

  • Create AIPs for the features targeted for AF 3 in the next few days to start technical discussions. 
  • Finalize the agenda for the next call

13 June 2024

Agenda

  • Action items from the last call
  • Discussion: How do we collaborate and discuss efficiently (e.g. Email, cwiki, Google docs)?
    • Proposal: 
      • If the content is high-level and needs more feedback, start with Google docs – it is easier to collaborate on Google docs.
      • After that, once the details are a little more fleshed out (moving from an idea to a proposal), create an AIP on Confluence and start a DISCUSSION thread on the dev mailing list
      • And it can then move to a VOTE once discussions are resolved
  • Discussion: Airflow Actors (Unknown User (eladkal))
  • Draft AIP Discussions:
  • Should we keep the calls weekly or bi-weekly?
  • Is there anything to follow up async?
  • Discuss Agenda for the next calls:
    • Which workstreams (& workstream Owners) should we define?
    • Draft AIP Discussions for AF 3 to present & get early feedback in-person
    • Discussion to streamline the development of Airflow 3 (development and branching strategy)
      • Separating dev for Providers & Airflow (question), and 
      • Separate branch for Airflow 2 
      • CI changes for the above
      • Make Towncrier non-optional so we can track breaking changes and have better release notes
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
    • Separate discussions for each big workstream including one for items to remove & refactor (e.g dropping MySQL)
    • Finalize Scope + Timelines / Milestones
    • Migration Utilities
    • Communication to users / stakeholders
    • Progress check-ins

Attendees


Name
1Kaxil Naik
2Ash Berlin-Taylor
3Jed Cunningham
4

Tamara Fingerlin

5Rajesh Bishundeo
6Aritra Basu
7Jarek Potiuk
8

Vincent BECK

9

Wei Lee

10

Kenten Danas

11

Briana Okyere

12

Amogh Desai

13

Poorvi Rohidekar

14

Jens Scheffler

15

Piotr Leśniak

16

Constance Martineau

17

TP Chung

18

Xiaodong (XD) Deng

19

Ranjita Rajeeva Shetty

20

Daniel Standish

21

Ephraim Anierobi

22

Ryan Hatter

23

Michal Modras

24

Rom Sharon

25

Eugene Kostieiev

26

Elad Kalif

27

Daniel Reeves

28

Shubham Mehta

29

Shahar Epstein

30

Stefan Krawczyk

31

Albert Okiri

32

Brent Bovenzi

33

Rafal Biegacz

34

Siddharth V

35Bugra Ozturk
36

Rob Caskey

Summary

  • Drafting proposals & getting feedback
    • The team discussed the challenges of Apache Confluence access and considered using Google Docs for initial feedback before moving to Confluence.
    • The general consensus was that developers could utilize the tool of their choice to get initial feedback (on their high-level draft) as long as the final AIP is published on Airflow's Confluence space for AIPs.
    • If someone does not have an account on Apache Confluence to comment on existing proposals or create a new proposal, reach out on #airflow-3-dev Slack channel.
  • Personas for the Airflow User
    • Elad prepared a document on Airflow Actors that the group discussed to get initial feedback. Several good suggestions were made, so it was decided to take the discussion offline/async and continue the discussion on that page. 
  • Task Context draft AIP
    • Ash presented the initial draft of the Task Execution InterfaceContext AIP (formerly known as Task Context SDK). 
    • The draft AIP is now published at AIP-72 Task Execution Interface and ready for review, although some technical details still need to be worked out.
  • Frequency of the Next Dev calls
    • The general consensus was to make the dev calls weekly for the next 2-3 weeks
  • Timeline to release Airflow 3
    • Based on the discussions on the first dev call, we also agreed that we should target March-April 2025 to release Airflow 3.
    • We will announce the dates and discuss some of the feature sets with the community at the Airflow Summit in September this year.
  • Action items

20 June 2024

Agenda

  • Check-in on the action items from the last call
    • Unknown User (kaxilnaik) - I have added labels to the AIPs. The only pending item is adding "Migration" effort in the AIP template
  • Discuss: Workstreams & workstream owners
    • What's for 3.0 & what's for >=3.1
    • Go through all AIPs
      • AIP-5: Should be superseded by AIP-66
      • AIP-14: Should be marked as completed by AIP-58 (Object Store)
      • AIP-20: Should be superseded by AIP-66
      • AIP-22: Should we do this for 3.0?
      • AIP-30: Should we do this for 3.1+?
      • AIP-35: Should be abandoned?
      • AIP-38: Brent will update it to reflect changes to AIP since its creation or create a new AIP
      • AIP-44: Replaced by AIP-72 for AF 3, and we can ship what we have in main for 2.10?
      • AIP-46: Should be replaced by AIP-72?
      • AIP-49: Is this complete? 
      • AIP-51: Is this complete?
      • AIP-55: Abandoned / 3.1+?
      • AIP-57: 3.0 or remove SLAs in 3.0 and address this in 3.1
      • AIP-59: For 3.0's performance benchmarks – not user-facing
      • AIP-61: Will this be done by the end of July for 2.10, or should we move this to 3.0?
      • AIP-62: 3.0
      • AIP-63
        • AIP-64: 2.10
        • AIP-65 & AIP-66: 3.0
      • AIP-67: 3.0 ? 
      • AIP-68: 3.0
      • AIP-69: 3.0
      • AIP-70: 3.1+
      • AIP-71: Part of AIP-66 / Some disagreements on the idea
      • AIP-72: 3.0
    • Airflow 3 Workstreams
  • Next calls:
    • Discussion to streamline the development of Airflow 3 (development and branching strategy)
      • Separating dev for Providers & Airflow (question), and 
      • Separate branch for Airflow 2 
      • CI changes for the above
      • Make Towncrier non-optional so we can track breaking changes and have better release notes
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
    • Draft AIP Discussions for AF 3 to present & get early feedback in-person
    • Separate discussions for each big workstream including one for items to remove & refactor (e.g dropping MySQL)
    • Finalize Scope + Timelines / Milestones
    • Migration Utilities
    • Communication with users/stakeholders
    • Progress check-ins

Attendees


Name
1Kaxil Naik
2Elad Kalif
3

Maciej Obuchowski

4

Aveek Das

5

Jed Cunningham

6

Rajesh Bishundeo

7

Karthikeyan Singaravelan

8

Jarek Potiuk

9

Phani Kumar

10

Artur Laskowski

11

Ephraim Anierobi

12

Vikram Koka

13

Constance Martineau

14

TP Chung

15

Vincent BECK

16

Pankaj Singh

17

Shubham Mehta

18

Utkarsh Sharma

19

Rahul Vats

20

Eugene Kostieiev

21

Tamara Fingerlin

22

Piotr Leśniak

23

Pankaj Koti

24

John Jackson

25

Ash Berlin-Taylor

26

Poorvi Rohidekar

27

David Blain

28

Wei Lee

29

Rafal Biegacz

30

Amogh Desai

31

Ankit Chaurasia

32

Daniel Reeves

Summary

  • The team reviewed the existing status of AIPs and marked them for AF 3.0, 3.1+ and AF 2 as needed. Here is the summary:

    AIPDecision
    AIP-1Superseded by AIP-44 & AIP-67. Close it
    AIP-5Superseded by AIP-66
    AIP-14Mark as completed by AIP-58
    AIP-20Superseded by AIP-66
    AIP-22Superseded by AIP-72 due to Task Interface. If someone has time, it can be PRs, doesn't need AIP
    AIP-30Airflow >= 3.1
    AIP-35Abandoned
    AIP-38Keep it for 3.0. Brent will update this. There was an Ask about expanding the Plugin migration strategy.
    AIP-44Replaced by AIP-72 for AF 3, and we can ship what we have in main for 2.10 as "experimental" and stated to change for AF 3
    AIP-46Replaced by AIP-72 and some parts of AIP-67
    AIP-49

    Phase 1 is in 2.10 and Phase 2 will be in 3.1 and above unless Howard Yoo  wants to lead and implement it for AF 3.0

    AIP-51

    Marking it for Airflow 2.10. Unknown User (onikolas) finishing up the last issue.

    AIP-55Abandoned
    AIP-57

    Airflow 3.0, Shubham owns it. There is a PR already with this comment contesting the proposed solution.

    We will review this again in few weeks

    AIP-59Bartosz is working on it. Is OOO right now but will resume once back. Will be used in AF 2 & AF 3 to compare performance. Will target it for AF 2
    AIP-61

    Marking it for Airflow 2.10. Unknown User (onikolas) to get it done in the next few weeks

    AIP-62

    Marking it for Airflow 3.0 for now. But we will review it again in a couple of weeks; Unknown User (mobuchowski) owns it.

    AIP-64Airflow 2.10
    AIP-65Airflow 3.0
    AIP-66Airflow 3.0
    AIP-67Airflow 3.0
    AIP-68

    Marking it for Airflow 3.0 for now, but it will be re-evaluated when Unknown User (jscheffl) creates a VOTE thread after discussing with Brent.

    Concern for keeping this for AF 2.10 was around adding a React Plugin interface that will need changing creating a migration pain.

    AIP-69

    Tentatively marking it for 3.0. Unknown User (jscheffl) has a PR that needs review.
    The concern for keeping this for AF 2.10 even if most changes are in providers is that it builds on top of AIP-44 which will be experimental and replaced in AF 3.

    Will be reviewed in a few weeks

    AIP-70Airflow 3.1+
    AIP-71The general consensus was against this AIP and favouring the DAG bundles concept that is part of AIP-66.
    AIP-72Airflow 3.0
  • The team also decided to review the Airflow 3 Workstreams doc asynchronously. If the reviewers are interested in leading any workstream without an owner, they should add their names in the Owner column.

27 June 2024

Agenda

  • Next calls:
    • Discussion to streamline the development of Airflow 3 (development and branching strategy)
      • Separating dev for Providers & Airflow (question), and 
      • Separate branch for Airflow 2 
      • CI changes for the above
      • Make Towncrier non-optional so we can track breaking changes and have better release notes
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
    • Draft AIP Discussions for AF 3 to present & get early feedback in-person
    • Separate discussions for each big workstream including one for items to remove & refactor (e.g dropping MySQL)
    • Finalize Scope + Timelines / Milestones
    • Migration Utilities
    • Communication with users/stakeholders
    • Progress check-ins

Attendees


Name
1Kaxil Naik
2Rob Caskey
3

Bugra Ozturk

4

Elad Kalif

5

Avi

6

Shahar Epstein

7

Vikram Koka

8

Jarek Potiuk

9

Xiaodong (XD) Deng

10

Indraneel Dongaonkar

11

Vincent BECK

12

Ash Berlin-Taylor

13

Kenten Danas

14

Rahul Vats

15

Jed Cunningham

16

Tamara Fingerlin

17

TP Chung

18

Pankaj Koti

19

Rajesh Bishundeo

20

Jens Scheffler

21

Poorvi Rohidekar

22

Constance Martineau

23

Ephraim Anierobi

24

Utkarsh Sharma

25

Dennis Ferruzzi

26

Pankaj Singh

27

Amogh Desai

28

Karthikeyan Singaravelan

29

Shubham Mehta

30

Gerardo Pastrana

31

Niko Oliveira

32

Ryan Hatter

33

Ankit Chaurasia

34

Aritra Basu

35

Wei Lee

36

Syed Hussain

37

John Jackson

Summary

  • Catch-up on action items from last call
    • Unknown User (kaxilnaik) updated the AIP template to include the "Migration effort" section. If the template is used to create a new AIP doc (click "Create" → "Airflow Improvement Proposal" on the wiki) it should pre-populate sections. The access to editing the template itself is limited to PMC members & ASF Confluence Admin group. Need to retroactively add that section in existing AIPs planned for 3.0
      Screenshot of How to create a page using template
    • SLA PR: This is still pending review.
    • Complete AIP-51 & AIP-61 for Airflow 2.10
  • Discuss: Workstreams & workstream owners (Airflow 3 Workstreams)
    • Updates on the existing AIPs for the 3.0 list
      • AIP-66 (DAG Versioning—Execution side): Unknown User (jedcunningham) will have the draft by the next dev call.
      • AIP-72 (Task Execution SDK) : No updates this week. Unknown User (ash) aims to have the VOTE open for it by the next dev call.
      • AIP-38 (UI Modernization): Unknown User (bbovenzi) is focussing on Airflow 2.10 deliverables; post that, he will focus on replacing this AIP with a new Umbrella AIP. There was a consensus on the call that we should split this AIP into multiple AIPs (with an Umbrella AIP) as below:
        • React'ifying the UI & changing the UX required for a modern Webserver
        • FAB removal: The removal of Flask Appbuilder will have backend implications such as changes needed to Authentication (currently, it is done via FAB Auth backends.), changes to the Plugin interface, custom API endpoints etc. 
        • New Features like DAG Folders/DAG Groups
      • AIP-57 Refactor SLA Feature: The initial AIP was created with 2.x in mind, so it should be revised. Some things might be easier with 3.0, as we can make breaking changes. One of the contention points last time was around whether the SLA duration time should start from DAG/task start or should be based on absolute time, as reflected in this PR commentShubham Mehta and Unknown User (kaxilnaik) will reach out to Sungwon Yun to see if he is interested in being part of this effort.
      • AIP-65 (DAG Versioning—UI side): Before the next dev call, Unknown User (jedcunningham) will decide whether to keep this AIP or make it part of any existing DAG Versioning or UI Modernization AIP.
      • AIP-67 (Multi-team): Unknown User (potiuk) will revise this AIP based on all the discussions and new AIPs to present the overview in the next dev call. Shubham Mehta and his team are planning to co-own/contribute to this AIP with Jarek.
      • AIP-68 (Extending plugin interface): Unknown User (jscheffl) & Unknown User (bbovenzi) will create a POC PR to determine the direction to take. Jens will do it before the next dev call to then get the final feedback on 2.10.x vs 3.0. 
      • AIP-69 (Remote Executor): Unknown User (jscheffl) organized a call with interested contributors a day after the dev call to get feedback. A summary of it is posted here.
    • Updates on the "other candidates for 3.0" list:
      • Enhanced Data AwarenessUnknown User (uranusjr) and Constance Martineau created draft AIPs (AIP-74, AIP-75, AIP-76, AIP-77) for this workstream (under Umbrella AIP: AIP-73). These AIPs are marked for Airflow 3.0 but AIP-77 might move to Airflow 3.1, TBD for now. 
      • Scheduler-Managed Backills (aka Backfills at scale): Unknown User (dstandish) has an internal draft for it that will be published around next week.
      • Poll external Datasets to have event-based DAG scheduling: Vincent BECK volunteered to own this epic for 3.0. He and Shubham Mehta plan to publish a draft AIP in the next 2 weeks.
      • Unknown User (ferruzzi) has volunteered to own the "Inspect & Simplify Airflow Configurations" & "Inspect & Revamp the cardinality of Metrics" streams.
      • Synchronous DAG Execution: No update this week but targeting a proposal after the next dev call
      • Make Execution Date non-unique for a DAG: No update for now; TP is focussing on the Data Awareness AIPs.
      • Scheduler Performance Improvements: Some areas in the scheduler have been identified for improvements. If anyone has any specific areas of the Scheduler loop that they would like to own, please add it to the list on Airflow 3 Workstreams. The performance goals would be tied to the specific area of optimization rather than the scheduler as a whole.
      • Consider Developing Airflow and Providers separately. In the coming weeks, Unknown User (kaxilnaik) will draft a pro-cons list in a document to send to the mailing list around this epic.
      • Respect permissions in CLI: Buğra Öztürk has volunteered to own this stream and, ideally, will start working on a proposal next.
      • Improve security of Airflow Supply Chain: Once things are more defined, Unknown User (potiuk) will send a document about this stream of work describing its impact on dependencies in the coming month. 
      • Observability of Callbacks on UI: Some of this might be covered in AIP-72 & AIP-69 but we will keep this item in the table so we don't forget about it.
      • Remove StatsD and replace it with Prometheus as a first-class citizen: We agreed that we should replace StatsD with OpenTelemetry and not Prometheus. It needs an owner who could figure out the impact of breaking changes since StatsD metrics are utilized by all users, including Airflow service providers, to monitor and alert on the health of Airflow deployments.
      • Overhaul Operator Templating behaviour: Unknown User (uranusjr) mentioned he would be happy to write the design document & asked for someone to work on the implementation. Shahar Epstein expressed his interest in working on this effort. 
      • Shubham Mehta expressed interest in working on a native DAG Factory that is currently on the 3.1 list. We would keep this for 3.1 for now and reevaluate based on the progress of other epics.
      • There have been no noteworthy updates on any other streams. Unknown User (kaxilnaik) will create GitHub issues for items in that table with no owners and post them on the mailing list to see if anyone is interested in leading it. If there are no takers by the end of August, they will be moved to the 3.1+ list.
  • The next dev call will be on .

11 July 2024

Agenda

  • Check-in on the action items from the last call
    • AIP-61 (Hybrid Executor): The PRs (#40472 & #40017) look good to merge. Is anything else pending for the AIP for 2.10?
    • Unknown User (kaxilnaik) will create GitHub issues for items in that table with no owners and post them on the mailing list to see if anyone is interested in leading it (deferred to next call)
  • Decide on the agenda for the next call. Potential items: 
    • How do we track breaking changes & big-facing changes as user-facing release notes (Unknown User (jedcunningham) )
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
    • Which Python version should we support in Airflow 3?
    • Continue separate discussions for each big workstream
    • Check in on the following items:
      • Unknown User (kaxilnaik) will create GitHub issues for items in that table with no owners and post them on the mailing list to see if anyone is interested in leading it (deferred to next call_

Attendees


Name
1Kaxil Naik
2Vikram Koka
3

Jarek Potiuk

4

Albert Okiri

5

Brent Bovenzi

6

Ash Berlin-Taylor

7

Elad Kalif

8

Bugra Ozturk

9

Artur Laskowski

10

Jens Scheffler

11

Pavan Kumar Gopidesu

12

Daniel Standish

13

Vincent BECK

14

Maciej Obuchowski

15

Shahar Epstein

16

Ephraim Anierobi

17

Rahul Vats

18

TP Chung

19

Amogh Desai

20

Constance Martineau

21

Jorrick Sleijster

22

Rajesh Bishundeo

23

Tamara Fingerlin

24

Aritra Basu

25

Rom Sharon

26

Wei Lee

27

Shubham Mehta

28

Michal Modras

29

Rob Caskey

30

Jed Cunningham

31

Igor Kholopov

32

Niko Oliveira

33

Filip Knapik

34

Rafal Biegacz

35

Karthikeyan Singaravelan

36

John Jackson

37

Daniel Reeves

38

Kenten Danas

39

Eugene Kostieiev

40

Pankaj Koti

Summary

  • Catch-up on action items from last call
    • AIP-61 (Hybrid Executor): On track for Airflow 2.10.
    • Unknown User (kaxilnaik)  deferred Creating GitHub issues for items in the Workstream table with no owners to next week.
  • Check-in: Workstreams & workstream owners (Airflow 3 Workstreams)
    • AIP-68 (Extending plugin interface): This is finalized for 3.0 instead of 2.10
    • AIP-38 (UI Modernization): Unknown User (bbovenzi) presented the progress of AIP-38 in the Airflow 2.3, 2.4, 2.7 & 2.8. An update on what's pending has been added to the AIP-38 page.
      • A new AIP was split from AIP-38 to replace FAB: AIP-79.
      • The new Plugin interface for UI will be defined by AIP-68
      • Unknown User (bbovenzi)  & Unknown User (jscheffl) : Could either of you add what you presented for AIP-68 in the AIP doc, around breaking changes to existing plugins & CLI to initialize a starter project?
      • Risk / Action Item: There were discussions around the impact on Auth due to the removal of FAB. KeyCloak Auth Manager was mentioned as a potential replacement for Enterprise installation and using FAB Airflow provider for local development. Fab auth manager via FAB provider might be a fallback until we get the Keycloak implementation. We should test this to make sure that it doesn’t become a blocker and that FAB provider is a reliable fallback. This should be noted in AIP-79.
    • AIP-67 (Multi-team): Unknown User (potiuk) presented the revised AIP. The AIP has been updated, and Jarek has answered the questions that were asked in the chat in this mailing list thread.
      • As a follow-up to the call, Jarek also created a mailing list thread about whether to finish AIP-44 for AF 2 or not.
    • AIP-62 (Lineage from Hooks): Unknown User (mobuchowski) presented current progress and is targeting Airflow 2.10 for its completion from the Airflow core side, the rest will be in Providers.
    • AIP-57 Refactor SLA Feature: Kaxil & Shubham both heard back from Sungwon Yun. Unfortunately, he doesn't have the capacity to work on it, but he is going to meet Shubham Mehta and the team for knowledge transfer.
    • AIP-65 (DAG Versioning—UI side): Unknown User (jedcunningham) decided to keep this AIP as is instead of making it part of the UI Modernization AIP.
    • AIP-66 (DAG Versioning—Execution side): Unknown User (jedcunningham) marked it as ready for review. The email thread is here.
    • AIP-69 (Remote Executor): Unknown User (jscheffl) wants to start voting, but it is dependent on AIP-44, which is discussed separately here.
    • AIP-72 (Task Execution SDK): VOTE has succeeded as of July 16.
    • AIP-73 (Data Awareness):  Unknown User (uranusjr) & Constance Martineau plan to remove AIP-74 (Introducing Data Assets) & AIP-75 (New Asset-Centric Syntax) from the draft in a week and timelines for the rest to follow.
    • AIP-78 (Scheduler-managed backfill) was published by Unknown User (dstandish) and is under-going discussion.
    • "other candidates for 3.0" list:
      • Poll external Datasets to have event-based DAG scheduling:  – This will become an AIP, Vincent BECKShubham Mehta working on the draft AIP.
      • Respect permissions in CLI: Buğra Öztürk is working on the first draft, timelines TBD.
  • The group collectively agreed that all the big AIPs targeting Airflow 3.0 should at least have the vote started before August 1. Anything after that does not have a realistic chance of completion. This is to not rush the AIPs but to prioritize the key items, especially the ones that contain breaking changes, get them vetted out properly, and make them better for the initial MVP launch.

25 July 2024

Agenda

Attendees


Name
1Kaxil Naik
2

Elad Kalif

3

Jarek Potiuk

4

Brent Bovenzi

5

Vikram Koka

6

Bugra Ozturk

7

Shahar Epstein

8

Josh Fell

9

Tamara Fingerlin

10

Vincent BECK

11

Ephraim Anierobi

12

Guangyang Li

13

Karthikeyan Singaravelan

14

Bryan Wilson

15

Jens Scheffler

16

Pavan Kumar Gopidesu

17

Cedrik Neumann

18

Wei Lee

19

Daniel Reeves

20

Niko Oliveira

21

Igor Kholopov

22

TP Chung

23

Rom Sharon

24

Michal Modras

25

Dennis Ferruzzi

26

Pankaj Koti

27

Jorrick Sleijster

28

Albert Okiri

29

Eugene Kostieiev

30

Kenten Danas

31

Shubham Mehta

32

Ankit Chaurasia

Summary

  • Catch-up on action items from last call
  • Discussions:
    • Branching Strategy:
      • As soon as 2.10.0rc1 is created, the Airflow main branch will become the Airflow 3 branch on .
      • Providers will continue to be developed on the main branch since we have the framework to run provider tests against older Airflow versions.
      • Bugfixes: If there is a PR with a bugfix to main, the committers should ask the PR author to raise a PR against v2-10-test  branch too. The team agreed to create a mailing list thread to discuss different approaches offline. The thread has been initiated here.
    • Which Python version should we support in Airflow 3?
      • The consensus was to keep things as-is i.e following the current Python-support policy where we would remove the support for a Python version when it is EOL.
    • Airflow 2 support policy including scope (feature vs bug fixes + security only) & support period
      • We might release 2.11 and mark it as a bridge release to add compatibility shims or deprecation warnings similar to 1.10.15. But we will decide on it as and when such a need arises.
      • For providers, we will need to increase the support window for the minimum Airflow version from the current 6 months. We will continue Airflow 2 provider support for a year or longer, exact period TBD. We will revisit this again in the coming months. If we cut 2.11 (or whatever the final 2.x version is), then after 6-12 months we could increase the minimum Airflow to 2.11. There were ideas around using a "compat" provider that might help with AF 2 and AF 3 stuff. This will be another thing we will discuss async at a later time to keep current focus on scope & AIPs.
  • Workstream statuses for ones that does not have a vote started:
  • Splitting providers from the mono-repo (Unknown User (kaxilnaik))
    • Unknown User (kaxilnaik) is not going to propose this anymore as he agrees that doing this now will increase the work and split the focus of folks. So we are going to NOT split providers from mono-repo to laser focus on Airflow 3 feature work.
    • We might think about it at a later date after Airflow 3.0 is released.
  • AIP-49 OpenTelemetry Support for Apache Airflow:
    • The PR for the 2nd part got merged for 2.10 and the AIP is marked complete.
    • Howard Yoo 's comment: Initially we thought to collect logs in standard way (scraping from log files), but found a much better way to collect logs, by utilizing log api to get the task logs, and then attaching them as 'span events' which would be much more useful. The extraction of Task Logs and attaching them as span events is thus included in the AIP-49, thus it is not 'excluded', albeit not as a separate 'log' data as originally thought.
  • StatsD vs Open Telemetry
    • There was a discussion on whether we should mark StatsD as removed in Airflow 2.10 itself in the docs here. The conclusion was that we should discuss this more as this has a wider impact including but not limited to the official Helm Chart which uses StatsD, the services providers (Astronomer, Composer, MWAA) and other long-time Airflow users. OTel also had limitation around character length limit and that you have to use tags with OTel but it didn't allow aggregating metrics with different tags etc. Shubham Mehta is going to check this out with his team and see if there are other concerns.
  • Triage Help needed: There are 360 open feature requests. Some we might want to consider and seek help for in 3.0, and others we should close as not planned. Elad, Jens, Jarek, Vikram & Kaxil have volunteered to look at those issues. Elad is also going to check with Dosu team to see if we can re-label these old issues so they are more accurate. Categorizing these issues into "areas" label was one of the next steps too so that the volunteers can look at a particular area or some segment to divide & conquer. Unknown User (eladkal) could you take the one on for issue-triage?

8 August 2024

Agenda

  • Catch-up on action items from last call
  • Discussions
    • Should we address Active/Paused DAG terminology for Airflow 3.0? (Unknown User (eladkal) )
    • Impact on Airflow 3 development while new UI is being built (Unknown User (bbovenzi))
    • Should we split Webserver, SDK, CLI, Scheduler, and Triggerer into separately installable packages for the users, while the dev code is in same mono-repo? (Jarek Potiuk )
      • Jarek's note: I believe it can be done easily and without "user compatibilty" breaking, People might still be able to just install apache-airflow (umbrella, empty package that would pull all other packages, but also (through airflow-cli ) provide pretty much unchanged airflow CLI. There are many benfits - but one is that some of those packages - particularly webserver - will have VASTLY different dependencies - and each of those packages will have a smaller set of them - and then we could even potentially release separate container images for all of them - each of them way smaller than the whole "airflow" one. It has also all the security implications there (some packages not affecting webserver) etc. etc. And I think we can do it rather easily  - without breaking the current development workflows (since we are going to continue with the current monorepo). Note! This is not "development"  side improvement (so it's not about monorepo splitting at all) - it's about "user-side" / "installation-side" improvement
    • AIP-80: Operator Templating 
    • 3.0 Branching
    • Library choice for APIs (Unknown User (potiuk))

Attendees


Name
1Kaxil Naik
2

Albert Okiri

3

Elad Kalif

4

Vincent BECK

5

Shahar Epstein

6

Jarek Potiuk

7

Jed Cunningham

8

Vikram Koka

9

TP Chung

10

Rom Sharon

11

Josix Wang

12

Niko Oliveira

13

Pankaj Koti

14

Ephraim Anierobi

15

Daniel Standish

16

Pavan Kumar Gopidesu

17

Jens Scheffler

18

Bugra Ozturk

19

Brent Bovenzi

20

Michal Modras

21

Rob Caskey

22

Tamara Fingerlin

23

Wei Lee

24

Shubham Mehta

25

Rajesh Bishundeo

26

Cedrik Neumann

27

Jorrick Sleijster

28

Ash Berlin-Taylor

29

Constance Martineau

30

Piotr Leśniak

31

Pierre Jeambrun

32

Guangyang Li

Summary

  • Catch-up on action items from last call
    • AIP-79: Remove Flask AppBuilder as Core dependency
      • Unknown User (jedcunningham)  does not have a working POC yet. He will provide an update on the next call.
      • Unknown User (jscheffl) will draft a high-level plan for Decoupling Providers's Connections metadata from FAB after he is back from vacation in the next 2 weeks.
    • Airflow 2.10rc1 & 3.0 branching check:
      • The main branch became the Airflow 3 branch on as planned. 
      • Guidelines around it have been documented in this PR and here.
    • StatsD vs Open Telemetry:  Shubham Mehta mentioned that the AWS team has not encountered any issues so far, but the POC is yet to be completed. He will update about it on the next dev call.
  • Discussions
    • Addressing Active/Paused DAG terminology for Airflow 3.0: The Consensus was to change "Active" to a better alternative. This GitHub issue should now cover it and is open for anyone to grab it.
    • Impact on Airflow 3 development while new UI is being built (Unknown User (bbovenzi))
      • There will be two UIs: the existing UI and the new React UI. Unknown User (bbovenzi)  will write a "UI dev practices" in the Contributing guide for someone wanting to try out a new UI. The guide will also include details like ensuring that all new features go to the new React UI.
    • Should we split Webserver, SDK, CLI, Scheduler, and Triggerer into separately installable packages for the users, while the dev code is in same mono-repo? (Jarek Potiuk )
      • The consensus was to wait until there is decent progress on AIP-72 implementation, but there was a general agreement on splitting the packages out while keeping apache-airflow as a meta-package that brings it all together. The intention is not to have a separate version scheme or release these separately however unlike Providers.
    • Library choice for different Airflow APIs (API used internally by Webserver, AIP-72 and external API) (Unknown User (potiuk))
      • The consensus was to use Fast API and generate spec from the code. This will mean we remove Gunicorn from the Webserver, which will be a breaking change, but most folks agree that it is worth it.
      • This will be tracked as part of AIP-84 UI REST API. Buğra Öztürk has also volunteered to help
    • AIP-80: Operator Templating 
      • Some of the attendees strongly opposed breaking Airflow 2's behaviour because they feared it would cause migration issues and that migration tooling wouldn't be sufficient. So, for Airflow 3, we will continue with the existing templating behaviour and add the new (and explicit) feature proposed in the AIP-80. After implementation, if TP finds a good 1-command migration for this, he will propose it on the mailing list with a demo to showcase the migration effort (with 100s of DAGs) to convince that we can break this behaviour but until then the default answer here is, for now, the decision is to keep the Airflow 2 templating behavior in Airflow 3.

22 August 2024

Agenda

Attendees


Name
1Kaxil Naik
2Jens Scheffler
3

Rob Caskey

4

Elad Kalif

5

Albert Okiri

6

Jarek Potiuk

7

Phani Kumar

8

Hussein Awala

9

Ash Berlin-Taylor

10

TP Chung

11

Brent Bovenzi

12

Vincent BECK

13

Michal Modras

14

Dennis Ferruzzi

15

Ryan Hatter

16

Jed Cunningham

17

Kenten Danas

18

Bugra Ozturk

19

Jorrick Sleijster

20

Shahar Epstein

21

Amogh Desai

22

Ephraim Anierobi

23

Rajesh Bishundeo

24

Constance Martineau

25

Josix Wang

26

Abhishek Bhakat

27

Pankaj Koti

28

Shubham Mehta

29

Pierre Jeambrun

30

Wei Lee

31

Vikram Koka

32

Igor Kholopov

33

Guangyang Li

34

Karthikeyan Singaravelan

35

Daniel Reeves

36

Daniel Standish

Summary

  • Catch-up on action items from last call
    • AIP-79: Remove Flask AppBuilder as Core dependency
      • Jed made good progress on a working POC – he was able to pull out FAB from the core easily; he is going to verify if he didn't miss anything. He will provide an update on the next call.
      • Jed , Vincent  & Jarek  have also been discussing what Auth manager we should have for Core. Vincent's plan is to have a simple auth manager for local installs, and this will be driven via an Airflow config. He will build one for production using Casbin or Keycloak after the Airflow Summit. Currently, his team is doing research on which would be better.
        • Action Item: Vikram to get back to Vincent or Shubham on why the Astronomer team didn't use Casbin. This can also wait for an in-person chat during the Airflow Summit.
      • Elad raised a concern about this PR that separates FAB migrations from Core. His concern was that this was the first time we would be doing a migration from a provider, so we should think about the messaging to the users via docs (both Airflow & FAB provider) because up until now, we tell users to just upgrade provider dependency without thinking of DB migrations. Ash had an idea to maybe call the FAB thing as a Plugin instead of a provider, we decided to discuss this async.
        • Action Item: Ephraim  will send a mailing list thread about how we plan to handle messaging around DB migrations from FAB and if we need to discuss Ash's idea about calling FAB a plugin rather than a provider. 
    • Update on development practices/guide while the new UI is being built (Brent )
      • Brent proposed 3 guidelines to help committers accept changes to legacy UI until the new UI is ready to be merged.
        1. Bugfixes that can be cherry-picked for 2.10.x, 2.11.
          1. It is fine to accept these changes
        2. Airflow 3.0 features
          1. Add minimum changes necessary to unblock dev work without adding a ton of FAB views which will be deleted anyway once new UI is ready
        3. Fixes or Updates to existing react views 
          1. It is fine to accept those changes. The changes will be ported over to the new UI.
      • Brent proposed that the same rules should apply to non-public API endpoints for UI.
      • The PR to add this new airflow/ui  project has been created.
      • Unknown User (pierrejeambrun) has joined forces with Brent to work on the UI pieces.
      • Action Item: Brent  will write up the guidelines in the docs and send an email with the link to PR on the dev mailing list.
    • Plan for Decoupling Providers's Connections metadata from FAB (Unknown User (jscheffl))
      • Jens created this draft PR with the POC for it and presented it on the call.
      • Jarek proposed the idea of dumping the JSON/YAML with connection fields in the Database or loading it via package metadata so we don't load all the dependencies on the webserver.
      • We will need some plan for external providers on how they can define connections or register them.
      • The POC successfully proved that we can separate the connection metadata from FAB
      • Action Item: Jens to create a GitHub issue for decoupling the Connection metadata from FAB
    • Open Telemetry as a StatsD replacement POC Update (Shubham  / Dennis
      • POC is working fine and the AWS team were able to use Open Telemetry with Cloud Watch. There were some duplicate metrics (based on name, length & limitation) that they will clean up as they decide to move.
      • Howard Yoo gave a presentation on OTel support in Airflow. Recording details below:
      • Action Item: This discussion will be continued on the dev mailing list. Kaxil to create a thread on the mailing list about OTel vs StatsD to discuss if we are ready to deprecate or remove StatsD support or just make it non-default in favour of OTel. 
  • Discussions
    • Airflow 3 development guideline review / Airflow 2.11: Bridge release (Unknown User (eladkal))
      • We discussed two open issues:
        1. How are we going to manage milestones? There will be two PRs: one against main and one against v2-10-test. In some cases, which milestone should we use on the original PR and the backport PR?
          1. We agreed that for now, we will only add milestones to the original PR (targeting the main); for example, if the original PR targets the main but is intended for 2.10.1, it should have a 2.10.1 milestone.
        2. How are we backporting/cherry-picking?
      • We need to remove features from 2.11 GitHub milestone 
      • Action Item: Kaxil to create a lazy consensus email as a follow-up to this discussion about Airflow 2.11 and delete all features from 2.11 GitHub milestone 
      • For PRs that just have deprecations changes, we should just merge them to release in the next 2.10 patch release so the users are made aware of it asap so they can start planning. When we have a change that is targeted for the 2.11 bridge release, we will discuss how to handle it since it won't be merged to v2-10-test. Possibly, we would create a v2-11-test  branch from v2-10-stable later this year when we are closer to have most of the AIPs on the finishing lines.
    • More help needed on our CI / infrastructure (Unknown User (potiuk) )
    • New code layout for core/providers/task-SDK (Unknown User (ash) )
      • We ran out of time on this one but Ash has started a thread here for discussion.
  • Consolidated Action items list:
    • Vikram to get back to Vincent or Shubham on why the Astronomer team didn't use Casbin. This can also wait for an in-person chat during the Airflow Summit.
    • Ephraim  will send a mailing list thread about how we plan to handle messaging around DB migrations from FAB and if we need to discuss Ash's idea about calling FAB a plugin rather than a provider. 
    • Brent  will write up the guidelines in the docs and send an email with the link to PR on the dev mailing list.
    • Jens to create a GitHub issue for decoupling the Connection metadata from FAB
    • Kaxil to do some homework on OpenTelemetry support so we can confirm an opinion to keep or drop StatsD support when we make OpenTelemetry the default
    • Kaxil to create a thread on the mailing list about OTel vs StatsD to discuss if we are ready to deprecate or remove StatsD support or just make it non-default in favour of OTel. 
    • Kaxil to create a lazy consensus email as a follow-up to this discussion about Airflow 2.11 and delete all features from 2.11 GitHub milestone 

5 September 2024

Agenda

Attendees


Name
1Kaxil Naik
2

Pankaj Koti

3

Jarek Potiuk

4

Elad Kalif

5

Daniel Ferruzzi

6

Jens Scheffler

7

Buğra Öztürk

8

Ephraim Anierobi

9

TP Chung

10

Ash Berlin-Taylor

11

Vikram Koka

12

Cedrik Neumann

13

Brent Bovenzi

14

Vincent Beck

15

Jed Cunningham

16

Igor Mosyagin

17

Rom Sharan

18

Shahar Epstein

19

Pierre Jeambrun

20

Rajesh Bishundeo

21

Michal Modras

22

Kalyan R

23

Daniel Standish

24

Shubham Mehta

25

Daniel Reeves

26

Albert Okiri

27

Pavan Kumar

Summary

  • Catch-up on action items from last call
    • Vikram to get back to Vincent or Shubham on why the Astronomer team didn't use Casbin. They will discuss it during the Airflow Summit.
    • Ephraim  created a thread here to discuss the messaging around DB migrations from FAB
    • Brentwrote up the guidelines in the docs and sent an email here to the dev mailing list.
    • Jens created a GitHub issue for decoupling the Connection metadata from FAB and potentially from provider dependencies
    • OTel & StatsD
      • Dennis has started a thread here about StatsD/OTel metric naming.
      • After the summit, Kaxil will need to create a thread on the mailing list about OTel vs StatsD to discuss whether we are ready to deprecate or remove StatsD support or just make it non-default in favour of OTel. 
    • Kaxil created a VOTE thread here about Airflow 2.11 being a bridge release and deleting all features from the 2.11 GitHub milestone 
  • Presentations
    • Jarek  gave us a sneak peek of his Airflow Summit keynote talk on Security: "Airflow Beach Cleaning" project – Security work
    • Pierre presented the new UI Rest API to explain how it works, how to develop it, and how to migrate from Connexion to Fast API
    • Kaxilpresented the Survey around Debugging Improvements created as part of this GitHub Issue by Iliya Romm, Omkar & Amogh.
  • Discussion about deprecation/removal of Core_operator functions if a provider package should be cut  (Elad Jens  Jarek Ash  )
    • We covered Airflow Standard Provider & deprecations (Unknown User (rom) ) as part of it.
    • The standard provider will contain "directly usable in DAGs" Operators, Hooks, Sensors that are currently in Airflow "core". Some of the base classes ( BaseOperator , Base Hooks, SkipMixins will remain in the airflow.sdk  as the "foundation" for all other operators)
    • Standard provider 1.0.0 will contain everything we want to extract there - which means that the provider will be in "not-ready" state until we migrate all the "standard" components - and we release it then as 1.0.0. Before the migration we remove all deprecations that were in those operators - so that the "standard" provider contains "clean Airflow 3 versions" of those operators.
    • We discussed a few paths of upgrade for users:
      1. The user is on Airflow 2; they fixed the deprecation warning and then installed the new standard provider. Then, switch the DAGs to use operators from the Standard provider instead of AF 2. They are now ready to upgrade to Airflow 3.
      2. The user on Airflow 2 fixes all the deprecations and upgrades to Airflow 3; the import paths ( airflow.operators.python ) work due to dynamic imports that Ash suggested on the mailing list. This will now throw warnings that a user needs to import PythonOperator (as an example) from the standard provider ( airflow.providers.standard ) instead of Airflow, but it will work as the "standard" provider will be preinstalled with Airflow. A user will now switch the import paths to using one from the standard provider.
    • The standard provider 1.0.0 will contain changelogs of breaking changes from the Airflow core. Where applicable, the relevant news fragment in the current core will be moved to the Airflow standard provider. The newsfragments (Updating guide) for Airflow 3 docs will say that the core operators have been moved to the standard provider and it will have a link to that Standard provider docs for detailed breaking changes. 
    • The Airflow 2 to 3 migration process will be documented in the Airflow docs (similar to this but better), with a recommended approach from each of the two approaches listed above. The news fragments are right now just used for tracking breaking changes, they will be collected & organized to create a detailed upgrade process and a list of breaking changes.
    • Jarekhas also started a lazy consensus email thread here about the above.
  • The recording of this call was added to YouTube as an unlisted video as there were a lot of discussions & useful presentations on this call:

19 September 2024

Agenda

  • Catch-up on action items from last call
    • Unknown User (kaxilnaik): Draft of Defining intermediate milestones to track progress & GitHub project boards
    • Vikram to get back to Vincent or Shubham on why the Astronomer team didn't use Casbin. 
  • Discussions
    • Follow up of [LAZY CONSENSUS] "Edge" as the name for AIP-69 in devlist: Shall providers be split into Operators / Executors / Plugins for the purpose of deployment where needed? At the moment all features that can be contributed from the side are in the same structure - Unknown User (jscheffl)  
    • Airflow Standard Provider: Bash & Python Operator (Pavan Kumar)
    • Potentially moving dev calls on Oct 3 to Oct 9 or Oct 10. And one on Oct 31 [Diwali] to Nov 1 (Unknown User (kaxilnaik) )

Attendees


Name
1Kaxil Naik
2

Shahar Epstein

3

Vikram Koka

4

Buğra Öztürk

5

Pavan Kumar

6

Rahul Vats

7

Shubham Raj

8

Jed Cunningham

9

Ephraim Anierobi

10

Kalyan Reddy Kasireddy

11

Igor Kholopov

12

Jens Scheffler

13

Phani Kumar

14

Karthikeyan Singaravelan

15

Shubham Mehta

16

Chris Grzegorczyk

17

Constance Martineau

18

Albert Okiri

19

Young Li

20

Dennis Ferruzzi

21

Rajesh Bishundeo

22

Daniel Hegberg

23

Vincent Beck

24

Cedrik Neumann

25

Tamara Fingerlin

26

Indraneel Dongaonkar

Summary

  • Catch-up on action items from last call
    • Unknown User (kaxilnaik) showed the GitHub project boards for some of the existing AIPs. Kaxil will follow up with all other AIP-leads to have the project board created.
    • Unknown User (kaxilnaik) discussed a proposal for how the intermediate milestones would be created to track progress. Kaxil will follow up with a draft with Vikram & Rajesh and then follow up with all the AIP leads to have the milestones defined. The general agreement was to have 3 intermediate milestones: Week of 24 Oct, 18 Nov and 16 Dec
    • Unknown User (vikramkoka) confirmed that Astronomer did not end up using Casbin itself but just the interfaces. Shubham Mehta mentioned Unknown User (onikolas) is going to explore Casbin and Keycloak and start implementation in about a week. The Dex project was suggested as yet another option by Mathew Wicks at the Airflow Summit. This was used by them in the Kubeflow project. His suggestion was to utilize it for Authentication only and continue doing Authorization on the Airflow side. Shubham will reach out to him.
  • Discussions:
    • Follow up of [LAZY CONSENSUS] "Edge" as the name for AIP-69 in devlist: Shall providers be split into Operators / Executors / Plugins for the purpose of deployment where needed? At the moment all features that can be contributed from the side are in the same structure (Unknown User (jscheffl) )
      • Diagram to show what functionalities we have in provider packages that does into which part of an Airflow deployment:

      • The goal of the discussion was to split the providers into Executors, plugins, and what's needed for DAG Authors (i.e User Code) like Operators and hooks. This way, we can limit the Python dependencies needed for Webserver, Scheduler, Worker, etc. An example is an AWS provider that has an Executor as well as an Operator. If we split them, then Scheduler can use the Provider that has an Executor, and Worker (including Triggerer & DAG Parser) can use the AWS provider that has an Operator but not an Executor. Airflow 3 is the right time to split this out if we decide to go that way.
      • re External Operator Links: Some ideas were discussed, like the parser storing the links in the DB, which is then retrieved by the Webserver via an API, so the Webserver does not need to install a provider just for Operator Links.
      • Unknown User (jscheffl)  will redraw the above diagram to separate out the Scheduler and the DAG Parser as the Scheduler does not run User Code, but the Parser does. As a follow-up to it, Jens will have a proposal around what the separation of providers would like to discuss on the next call and/or the dev mailing list. Unknown User (vikramkoka) and Unknown User (kaxilnaik) have volunteered to work with Jens on it offline before the next call.
    • Airflow Standard Provider: Bash & Python Operator (Pavan Kumar)
      • Pavan brought up the concern that System tests will break if we change the example DAGs for Bash & Python from core to using Standard provider until it is released. This was because some of providers like Google use the Bash or Python Operators.
      • Ideally, it should work with Airflow 3 since the provider will be pre-installed (via required_deps) with Airflow core/SDK.
      • The team decided to take it offline. Reviews would be appreciated.
    • Potentially moving dev calls on Oct 3 to Oct 9 or Oct 10. And one on Oct 31 [Diwali] to Nov 1 (Unknown User (kaxilnaik) )
      • Decided to move   call to   and move the   to  

10 October 2024

Agenda

  • Catch-up on action items from last call

Attendees


Name
1Kaxil Naik
2

Vikram Koka

3

Daniel Hegberg

4

Vincent Beck

5

Jens Scheffler

6

Phani Kumar

7

Rajesh Bishundeo

8

Rahul Vats

9

Josix Wang

10

Dennis Ferruzzi

11

Ash Berlin-Taylor

12

Cedric Neumann

13

Brent Bovenzi

14

Pierre Jeambrun

15

Ephraim Anierobi

16

Bugra Ozturk

17

Pavan Kumar Gopidesu

18

Michal Modras

19

Jilan Kothakota

20

Shubham Mehta

21

Kalyan Reddy

Summary

  • Follow-up on action items from the last call:
    • Unknown User (jscheffl) walked through the draft diagram for splitting up the providers into Operators / Executors / Plugins, based on the long term (Airflow 3) view of where they would be used. Jens stated how a follow-up proposal could be to move the “Extra Links” to be stored in the Airflow meta-database, since they are shared across components. A similar issue is  for the Extra Fields for Connections since they are also shared across components such as DAG Parser and Webserver. Unknown User (vikramkoka) added that this separation of providers was primarily driven from the packaging and distribution strategy as well as the release strategy to be used for the providers going forward because of the Core vs. Task SDK split coming as part of Airflow 3. The consensus from the group was a proposal needed to be written as a follow-up and shared with the dev list. Unknown User (jscheffl) suggested that Unknown User (vikramkoka) take a stab at the draft of the proposal and Unknown User (vikramkoka) agreed to take it as an action item.
    • Unknown User (vikramkoka) walked through the monthly Development milestones for Airflow 3, across all AIPs. The feedback from the group was positive and it was felt that it was helpful not only for the contributors, but the larger community. Unknown User (kaxilnaik) suggested that this should be a page within the top-level Airflow 3.0 page on the wiki. Unknown User (jscheffl) mentioned that he needed feedback on this PR on AIP-69 based on the AIP-72 work and Unknown User (ash) responded he would review that async. Unknown User (vikramkoka) asked the AIP owners was to update the milestones with details and status as appropriate, but also to notify him of changes for potential ripple effects.
  • Presentations:
    • Rahul Vats walked through the high level Airflow 3 test plan which included all the AIPs targeted for the release as well as some initial end to end scenarios. Rahul created these based on the AIP documents and asked for the AIP authors to review these and add additional end to end scenarios as appropriate, so that any breaking issues could be identified as part of the development process itself. Rahul recommended that these be used as the source of truth and be a foundation for the system tests. He also referenced the use of the testing slack channel #sig-airflow-3-qa-testing and asked for help from the community in testing this major release. Rahul took the action-item to articulate “what should be covered in the AIP unit tests vs. here in the E2E tests” with examples. Rajesh Bishundeo asked about performance testing AIP-59 in the context of Airflow 3. Michal Modras took the action-item to follow up with the original author of AIP-59 and see if the author or an alternate Google developer could give an updated proposal in time for Airflow 3 testing. 
    • Unknown User (bbovenzi) shared how the team has been using the UI update opportunity (AIP-38) for a UI Design refresh and presented mockups including the new home and DAGs list page. This had also been shared as part of the Airflow Summit. Pierre Jeambrun presented a progress update on the FastAPI-based approach, including a quick demo (AIPs 84). Unknown User (bbovenzi) also presented a progress update on AIP-68, including a quick demo of the approach for custom react components (plug-ins) based on FastAPI. 
  • Discussions:
    • Unknown User (jscheffl) brought up the topic of continued support for Python 3.8 in the upcoming Airflow 2.11 release. I.e. if it was required or if it could be dropped. The consensus was that there were no objections from the attendees, but the next step was for Unknown User (jscheffl) to send an email out to the dev list about this asking for a “lazy consensus”.


24 October 2024

(Proposed) Agenda


Attendees


Name
1Vikram Koka
2

Kaxil Naik

3

Rajesh Bishundeo

4

Ash Berlin-Taylor

5

Rahul Vats

6

Jens Scheffler

7

Phani Kumar

8

Jarek Potiuk

9

Ankit Chaurasia

10

Cedric Neumann

11

Brent Bovenzi

12

Pierre Jeambrun

13

Ephraim Anierobi

14

Michal Modras

15

Shubham Mehta

16

Daniel Standish

17

Bugra Ozturk

18

Josix Wang

19

Shubham Raj

20

Igor Kholopov

21

David

22

Joffrey Bienvenu

23

Kalyan R

24

Daniel Hegberg

Summary

  • Follow-up on action items from the last call:
    • Providers follow-up: Unknown User (vikramkoka) commented that he, Jens Schubert , Jarek Potiuk , and others have been collaborating on a proposal document and that it would be shared well before the next dev call. Vikram shared a split version of that document to dev list on Friday as a pre-read for the providers repackaging document.
    • Performance test plan: Michal Modras shared that one of his team members would be working on it. He said that the current situation is that they have an “elastic DAG” which can be used for benchmarking various scenarios. He said that they would be working on the benchmark scenarios and sharing that document by the end of Nov. After that, the initial data collection based on these scenarios would be done and shared in Dec.
  • Development updates and presentations:
    • Unknown User (uranusjr) shared a recorded video detailing the progress of AIP-74 on AIP-74 Introducing Data Assets. This showed the current progress on the AIP which was close to completion from a back-end perspective. This included the renaming of the existing Datasets and adding a name attribute to the asset class, to enable the specification of a more user-friendly name for the asset. He also shared that this name attribute is not currently shown in the UI, but that they would be working with their UI team to reflect these changes in the Airflow UI. 
    • Ankit Chaurasia shared an update on AIP-83 Remove Execution Date Unique Constraint from DAG run. He mentioned how this follows up on the work initially started in Airflow 2.2 with the shift towards run_id as a unique identifier and the logical_date as a human usable non-unique reference. He walked through the massive (around 280 files touched) draft PR focused on removing the execution_date completely including the CLI and the API. This PR has already had several comments from reviewers. The pervasiveness of the “execution date” was reinforced in the discussion. He mentioned how one of the challenges was also with the backfill PR and was waiting for the backfill PR to be completed and merged. He showcased the test plan for testing this AIP and requested the group to review and provide feedback on the test plan. He concluded that the PR is in good shape logic-wise, but fixing tests. The discussion after that raised the point that we need to upgrade the API version from v1 to v2 or v3 as part of Airflow 3, possible name to be “stable v3 API”.
    • Unknown User (ephraimanierobi) shared an update on AIP-79 Remove Flask AppBuilder as Core dependency. It has a lot of work streams including the auth manager. Ephraim mentioned how the part he was working on was the separation of the DB migration from Fab. He mentioned how apps could now use an alternative mechanism called external DB managers to run DB migrations as part of the upgrade. He mentioned how this AIP included other work such as Auth manager and UI. Rajesh added (on behalf of Vincent) that the Auth manager was close to being done. Ash had also done some work on this AIP regarding 5.0 RC, but was not yet complete with respect to testing. Vikram expressed concern that clearly multiple “necessary parts” were done as part of this AIP, but not clear if all the “sufficient parts” were done. Ephraim mentioned that “what is left is for the UI to switch”. This needs to be followed up in the next dev call. Jens suggested that we may need to migrate or reimplement the “Connection form UI”.
    • Unknown User (ephraimanierobi) also shared an update on AIP-65 Improve DAG history in UI - backend changes. He said how he is working on DAG Versioning around the serialized DAG, so that older versions of the DAGruns could be visible through the UI. Ephraim mentioned that the serialized DAG hash is not always consistent today because of inconsistent sorting, which is the first thing he just fixed. He also added a user-specified version for the DAG and talked about how he is close to completion on the DAG history database changes. He said that the next steps were the API and UI work.
    • Unknown User (kaxilnaik) shared an update on AIP-72 Task Execution Interface aka Task SDK, specifically focussing on the API server. He showed the addition of the scaffolding for the API server, so that in the future, the Core API and the execution API servers could be run independently if needed for different scaling requirements. He mentioned how he and Ash are working on porting code from Core to TaskSDK. Unknown User (ash) then followed up with sharing the main PR for the Task SDK, which covers the DAG object, the TaskGroup, the Base Operator and so on, which would be the heart of airflow.sdk, which is the core Task SDK. To make upgrades easier, DAG import would stay as “airflow.dag”, so people don’t even get any deprecation warnings. Ash mentioned how he was currently thinking of including this “airflow.sdk” in the Scheduler to avoid reimplementation, but was still thinking through the implications. He mentioned how a lot of the classes are now using “attrs” to save on boilerplate code. Ash mentioned how the next step is to start adding endpoints for the API server to start doing simple client-based execution.
    • Unknown User (bbovenzi) finished up the call with an update on designs for AIP-38 Modern Web Application by walking through mockups of the redesigned DAG details page, including a list of actions / filters to show only failed tasks, etc. Brent also walked through the mockups for DAGruns view for Gantt chart view vs. Graph view, etc. Brent showed how the modal view enables a quick view of the details of a DA run and to switch between different areas which a user may want to drill into. Brent mentioned how the motivation was to enable proper use of space and to zoom between a DAG and a DAGrun and TaskInstance, without having to show a giant Christmas tree of the grid view.
  • Action items for next call:
    • Unknown User (vikramkoka) to update the development milestones doc based on the performance benchmark plan from Michal Modras  - DONE

    • Unknown User (vikramkoka) to create a subpage under Airflow 3.0 to track critical changes important for upgrades, including API changes such as those brought up in the Execution date removal discussion. API owners to update this page as they make user facing changes during development. 
    • Unknown User (ephraimanierobi) , Vincent, and others interested to follow-up on "What's left for AIP-79" and present at the next dev call. 


7 November 2024

(Proposed) Agenda


Attendees


Name

1Vikram Koka
2

Kaxil Naik

3

Rajesh Bishundeo

4

Ash Berlin-Taylor

5

Rahul Vats

6

Jens Scheffler

7

Ryan Hatter

8

Jarek Potiuk

9

Jed Cunningham

10

Cedric Neumann

11

Brent Bovenzi

12

Pierre Jeambrun

13

Ephraim Anierobi

14

TP Chung

15

Shubham Mehta

16

Daniel Standish

17

Bugra Ozturk

18

Josix Wang

19

Dennis Ferruzzi

20

Igor Kholopov

21

Vincent Beck

22

Akash Haldankar

23

Shahar Epstein

24

Daniel Hegberg

25

Maciej Obuchowski

Summary

  • Follow-up on action items from the last call:
    • Update on AIP-79 with respect to what's left Unknown User (jedcunningham), Vincent BECK, Unknown User (jscheffl): Jed shared that it was unclear at this time if AIP-79 was blocked on AIP-38 (new UI).
      • Jed to report back by the next dev call if he could magic back the older Fab provider, so that the old Fab provider could exist independent of the new Fab provider, so that we are not blocked by the new UI work
      • The Connection form for the new UI is another item which needs to be done and is not blocked by anything else. Jens's intention is to wait  and build the Connection form based on the Trigger form in the new UI. Though to be clear, no one actively owns the Connection form work at this time, but Brent and Jens believe that this will naturally follow as part of the AIP-38 work.
      • Clarity from Jed and Vincent that the new Fab provider is needed for the Auth manager and more and is not in conflict with the work that Jed is proposing above. 
    • Breaking changes update Unknown User (vikramkoka): Vikram walked the group through his thoughts around capturing all changes that users need to worry about as part of upgrading to Airflow 3. Specifically to structure the newsfragments with a template. Vikram proposed an initial template with the following elements: 
      • DAG code changes

        • Import changes

        • Other DAG code changes

        • e.g. SubDAGs - please note if it was already marked as “deprecated” or “experimental”

      • Stable API changes: both invocation and result

      • CLI changes:

      • Airflow configuration changes

        • Airflow.cfg changes

        • Integration changes

      • Behavior changes: Example Backfill or Execution date changes

      • Plugin changes

    • There was immediate agreement within the group for the above and the desire for a concrete template. Unknown User (vikramkoka) to publish the above and then it could be added as a pre-commit. Vikram to also create an initial Upgrade / Change overview page, which would have example results based on some of the initial newsfragments (around 10).
  • Development updates and presentations:
    • Airflow 3 workstreams update Unknown User (vikramkoka): Vikram walked the group through the updates to the Airflow 3 workstreams and Airflow 3 dev milestones pages to reflect the high level status of the Airflow 3 project as well as finer level monthly details. Positive feedback from Rajesh and the rest of the team on the overall summarization in the Workstreams page, with the more granular detail in the monthly dev milestones page. Vikram reiterated the ask for more help on the AIP-38 UI work. Brent said that we are now ready for others to pickup work now, since the back-end APIs are ready to use. Brent to create a Slack sub-channel for UI development specifically for AIP-38 work. 
  • Discussion topics:
    • Update other candidates from the Workstreams list:
      • Remove SLAs and AIP-57 Refactor SLA Feature - obsoleted by AIP-86 Deadline alerts?  Unknown User (ferruzzi)  confirmed that this entry was now obsoleted by AIP-86 Deadline Alerts. 
      • Remove poke, reschedule mode from Sensors? Unknown User (kaxilnaik) said that there was a discussion in one of the early dev calls and that he felt that this should be removed to really simplify the code and choices for the users. Unknown User (dstandish) felt that there was a difference between support in Operators vs. Airflow Core. He felt that the support in Operators was very confusing.  Shubham Mehta felt that this capability was useful for very long running tasks (greater than 12 hours) in the past, but wasn't sure if it was still necessary after Airflow 2.8, and would get back to the team about the same. Unknown User (jedcunningham) felt that it would be much simpler to take it out. There was a good discussion with multiple members of the team and both Igor Kholopov and Shubham Mehta confirmed that they didn't have a strict "no" at this time, but would need to confirm. After the discussion, the action item was for Unknown User (kaxilnaik) to start an email discussion around this in the dev list. 
      • Inspect & Simplify Airflow Configurations: Shubham Mehta and Unknown User (ferruzzi) confirmed that we should just defer this to post Airflow 3.0. 
    • OTEL integration into Airflow Scheduler: Unknown User (dstandish) 
      • There was a long discussion about the task log reading introduction into the very performance intensive Scheduler loop and the challenges therein. 
      • Unknown User (kaxilnaik) to start an async discussion around what changes need to be done to either refactor or revert these changes for OTEL traces. 
  • Action items for next dev call:
    • Unknown User (jedcunningham) to confirm back regarding the older Fab provider changes for compatibility. 
    • Unknown User (vikramkoka) to create a template for newsfragments for flagging upgrade issues. And to create an initial Airflow 3 upgrade considerations page based on some of the existing PRs. 
    • Unknown User (bbovenzi) to create an Airflow 3 UI slack channel to facilitate collaboration on Airflow 3 UI dev ("airflow-3-ui"). 
    • Unknown User (kaxilnaik) to start email discussion regarding removal of Poke and reschedule mode from sensors. 
    • Unknown User (kaxilnaik)  to send an email about the issues with OTEL integration for Traces into the Scheduler. 


21 November 2024

(Proposed) Agenda


Attendees


Name

1Vikram Koka
2

Daniel Hebgerg

3

Michael Robinson

4

Jed Cunningham

5

Rajesh Bishundeo

6

Pavan

7

Vincent Beck

8

Rahul Vats

9

Amogh Rajesh Desai

10

Brent Bovenzi

11

Dennis Ferruzzi

12

Kaxil Naik

13

Pierre Jeambrun

14

Ash Berlin-Taylor

15

Karthikeyan Singaravelan

16

Jarek Potiuk

17

Kalyan Reddy Kasireddy

18

Shahar Epstein

19

Jens Scheffler

20

TP Chung

21

Tapomoy Adhikari


Summary

  • Follow-up on action items from the last call:
    • Update on the POC of Flask/FAB app into the Fast API Unknown User (jedcunningham) :
      • The POC worked and that means we will not need a separate webserver to maintain backward compatibility with existing plugins. 
      • In addition, this means that we don't need the new UI (AIP-38) to be far enough along to remove the old UI. The old UI can stay as-is, and support for plugins can be added in the new FastAPI webserver.
      • Taking this from POC to production level reality will take some work. This will be planned by Jed and Vincent. Anticipate seeing a Github project board with the items to be done in time for the next dev call. 
    • Breaking changes update Unknown User (vikramkoka)
      • Vikram walked the group through the draft of the Airflow 3 breaking changes document
      • Vikram mentioned that this is about 50% populated right now, with 50% of current known changes still to be populated. 
      • To reduce the manual effort going forward, we will have a newsfragment template to be filled out as part of the PR process
  • Development updates and presentations:
    • AIP-72 update (Unknown User (ash)  and Unknown User (kaxilnaik) ): 
      • Ash demonstrated the working state of AIP-72 with respect to the separation of the Task Execution code into the TaskSDK vs. Airflow Core. This was in the form of tasks created with the new Task SDK and being run on the Local Executor, using a supervisory process.
      • The demo included the code showing how the supervisory process launched the task process and the socket pair / dup mechanism for logging. Ash also mentioned that the logging providers may need changes to accommodate the new system.
      • The team also discussed how this would make it a lot easier to intelligently display logs in the UI, without the UI needing to reparse the logs. It was very encouraging to see this coming together. 
    • AIP-66 update (Jed):
      • Jed shared a quick update regarding the progress being made on AIP-66 including the focus on the refreshing bundles from an external source. Jed also mentioned that he would be ready to open a PR for this early next week and that the demo could happen in the next dev call. He also expressed hope that the connection form work could be leveraged for the UI support here.
    • AIP-38 update (Brent):
      • Brent presented the UI progress including the new react-based DAGs list page and the dashboard page with basic statistics all leveraging the new FastAPI work. Brent mentioned that they were working on the Dag Run and task instance pages.
    • AIP-84 update (Pierre):
      • Pierre and Brent expressed gratitude for the many contributions from the community on AIP-84. Pierre confirmed that they were almost done with the migration of all public endpoints and that there were only a few remaining private endpoints to be done. 
  • Discussion topics:
    • Meta milestones (Vikram):
      • Vikram highlighted that from an overall standpoint, the project was generally on track with the published schedule. 
      • He emphasized that the backend features should ideally be completed by the end of December and must be integrated by the week of the 18th of January in order to be on schedule. 
      • He said that this was critical for the packaging and upgrade work to be done on a stable base and be completed by the end of March. He mentioned that the UI could continue to change till early March, but the Jan backend feature freeze was critical. He asked all the AIP owners to keep this in mind and be pragmatic about their AIP scope
  • Action items for next dev call:


5 December 2024

(Proposed) Agenda


Attendees


Name

1Vikram Koka
2

Ash Berlin-Taylor

3

Jed Cunningham

4

Vincent Beck

5

Ramit Kataria

6

Bugra Ozturk

7

Phani Kumar

8

Tamara Fingerlin

9

Eugene Kostieiev

10

Dennis Ferruzzi

11

Brent Bovenzi

12

Igor Kholopov

13

Karthikeyan Singaravelan

14

Amogh Rajesh Desai

15

Pavan

16

Jarek Potiuk

17

Kalyan Reddy Kasireddy

18

Shahar Epstein

19

Jens Scheffler

20

Pierre Jeambrun

21

Rajesh Bishundeo

22

Daniel Standish

23

Ryan Hatter

24

Augusto

25

Albert Okiri

26

Michal Modras

27

Rafal


Summary

  • Follow-up on action items from the last call:
    • Update on the FAB provider for backwards compatibility project Unknown User (jedcunningham)  and Vincent BECK 
      • Jed and Vincent shared the progress to date including a PR that already implements plug-in backwards compatibility. 
      • Unknown User (vikramkoka)  expressed appreciation for the progress and asked about the expected timing of the remainder of the items to be done and their response was outside of the New UI completeness blocker, the other items could be done by mid-Jan. 
      • Unknown User (jscheffl) suggested that the PR to validate dependencies without the new UI be created as a draft and validated with the existing functionality of the new UI rather than waiting for the new UI to be completed.  
    • Update on Performance benchmark scenarios Michal Modras :
      • Augusto shared the thinking around performance benchmark scenarios and metrics, with a focus on DAG performance and resource consumption. 
      • Augusto shared that this was a follow up on the work already done on AIP-59 and would be based on the existing performance framework. 
      • There was a significant discussion around the task timings and if those were relevant for realistic performance benchmarks. 
      • Jens asked if this would cover different executors and Augusto responded that this would be Celery first and possibly Kubernetes executor later.
      • Jens and Vikram brought up comparing the performance of Airflow 2.10 vs. Airflow 3 to identify performance differences. Augusto confirmed that all the tests would be run on both Airflow 2 and 3 to confirm performance changes. 
  • Development updates and presentations:
    • Update on AIP-75 New Asset-Centric Syntax Unknown User (uranusjr) 
      • TP shared a recording of the new syntax for asset creation.
      • TP also showed the demo of a new Airflow CLI command to list all the Data Assets and to show the details of a specified Data Asset. 
      • Finally, TP also introduced the "materialized" command for a data asset which ensures that the asset is created by running the DAG which outputs that asset. 
    • Update on AIP-66: DAG Bundles & Parsing Unknown User (jedcunningham) 
      • Jed demonstrated the process of defining DAG bundles and how DAG bundles would be parsed by the DAG processor
      • He mentioned how some of the changes are happening in conjunction with the changes being done in AIP-72. 
      • He also showed bundleIDs and bundle Versions. He then showed how a new version is parsed and reprocessed. 
      • He mentioned that there is much more work to be done, but the core of bundle definitions and DAGs being processed from those bundles is now in place.
      • In response to questions, he clarified how DAG Bundles currently pull down the entire Git clone into a temporary folder, so that all DAGs and their friends/dependencies could be processed. And that, more optimization is very feasible.
    • Update on AIP-78 Scheduler-managed backfill Unknown User (dstandish) 
      • Daniel said that all the back-end server work for this AIP as scoped has been completed for a bit. He added that the front-end UI work will be done as part of AIP-38. 
      • He however added that there is a Data completeness conversation to be had as a result, which led to the discussion below.
  • Discussion topics:
    • Data completeness discussion  Unknown User (dstandish) 
      • Daniel brought up the concept of implicit data partitioning already in Airflow with the concept of execution date, when catchup is defined to be True. 
      • Daniel advocated making this implicit data partitioning an explicit concept in Airflow, arguing that the existing grid view is already an incarnation of the same. 
      • At a high level, users could declare that a DAG is partition-driven, based on the timetable. Going forward, Backfills or catchup would only be supported for partition-driven DAGs. 
      • For backwards compatibility, old DAGs would be assumed to be partition driven. 
      • The immediate reaction from the team is that this is a big change and there was significant discussion if this is absolutely required.
      • Daniel said that the trigger for this was AIP-78 Scheduler-managed backfill and AIP-83 Remove Execution Date Unique Constraint from DAG run, which left a bit of a vacuum between them.
      • The follow-up action item after the discussion was for Daniel to share thoughts async and everyone to think about the need for this. 
    • Milestone and scope update Unknown User (vikramkoka) 
  • Action items on/before next dev call:
    • Unknown User (dstandish) to post a document regarding explicit vs. implicit partitioning and its need as a result of the removal of execution date, especially with an eye towards backwards compatibility. Team to consider the introduction of a partition concept in Airflow. 


19 December 2024

(Proposed) Agenda


Attendees


Name

1Vikram Koka
2

Ash Berlin-Taylor

3

Jed Cunningham

4

Vincent Beck

5

Tapomoy Adhikari

6

Bugra Ozturk

7

Phani Kumar

8

Tamara Fingerlin

9

Kaxil Naik

10

Jens Scheffler

11

Brent Bovenzi

12

Amogh Rajesh Desai

13

Karthikeyan Singaravelan

14

Ephraim Anierobi

15

Pavan

16

Jarek Potiuk

17

Dennis Ferruzzi

18

Shahar Epstein

19

Elad Kalif

20

Pierre Jeambrun

21

Rajesh Bishundeo

22

Daniel Standish

23

Ryan Hatter

24

Kenten Danas

25

Poorvi Rohidekar

26

Cedrik Neumann


Summary

  • Follow-up on action items from the last call:
    • Update on the Data completeness discussion Unknown User (dstandish) 
      • Daniel presented the problem around ambiguous behavior for backfills, when logical dates are no longer unique. 
      • He spoke about how the traditional Airflow behaviour using execution date based on the DAG schedule implicitly established a date-based partitioning scheme for DAGs.  
      • He then advocated making this behaviour explicit, by defining this to be a partition scheme of "implicit" and also supporting a partition scheme of "none" for non-date-based partitioned DAGs which could be run multiple times for the exact same logical date, which is a common use case both for model training as well as for inference execution. 
      • There was a significant level of debate around this topic, with two counter-points. The first counter-point was that the "partition" term was confusing, especially with "Data Asset Partitions" upcoming in AIP-76, and if this was the same, different, or related. The second counter-point was around whether a new DAG-level parameter should be added for this, as opposed to either one or more combinations of DAG API/UI invocation parameters and existing DAG parameters such as "catchup". 
      • Since a conclusion could not be reached in the call, the action item for Daniel, was to write up a document as an amendment to the existing AIP-83 Remove logical date uniqueness and share it with the mailing list. Daniel created and shared this doc on Friday.
  • Development updates and presentations
    • Update on AIP-38 Modern Web Application Unknown User (bbovenzi) 
      • Brent demonstrated the progress on the UI specifically including the DagsList and DagDetails pages. 
      • This included the ability to trigger DAGs and view DagRuns.
      • Brent then drilled into viewing DAG Run details such as Task logs and XCom data. 
      • It was very encouraging to see the core DAG development and test workflows in action as part of Airflow 3. 
    • Update on AIP-72 Task Execution Interface aka Task SDK Unknown User (amoghdesai) , Unknown User (kaxilnaik) , Unknown User (ash) 
      • Amogh started the update on AIP-72 by walking through how deferred tasks were being executed based on the Task SDK. 
      • The demo was based on a DAG including a date time sensor and the interaction between the supervisor process and the task runner for different task states.
      • Amogh also explained the task execution states which were currently implemented and the ones which were still to be done. 
      • Kaxil then walked through the implementation of the TaskContext, a key concept within the Task Execution Interface.
      • This included the interface and the implementation of Connections, and how that was fetched from the API server. 
      • Ash briefly shared a PR that removed the database dependency for DAG parsing and how that leveraged the supervisor-task runner communication interface. 
      • Because we were running out of time in the dev call, he said that would subsequently post a video of the demo. Ash posted this demo video to the dev list later. 
  • Discussion topics:
    • PR strategy for 3.1+ feature work - Rajesh
      • Rajesh wanted to discuss how to handle PRs for post-3.0 feature work. Since the dev call was already running over, this was to be discussed async. 
    • Scheduling for next dev call
      • Since a lot of committers are out of holidays, the next dev call will be on the 9th of January, 2025 instead of the 2nd of January.
  • No labels

3 Comments

  1. Unknown User (kaxilnaik)

    Added you to my cal invite (smile) and just posted the summary too

  2. Unknown User (amoghdesai)

    Thanks for the summary Unknown User (kaxilnaik)

    Loving the direction where this discussion is headed. I am happy with the progress so far and would love to be a part of the efforts from the upcoming meetings.

  3. Unknown User (bbovenzi)

    AIP-68 (Extending plugin interface): Jens Scheffler & Brent will create a POC PR to determine the direction to take. Jens will do it before the next dev call to then get the final feedback on 2.10.x vs 3.0.
    I got a fragile POC working. Will hopefully have a more robust one to share with everyone soon. It will be much simpler than a whole react framework.