-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Open
Labels
area:corekind:metaHigh-level information important to the communityHigh-level information important to the community
Milestone
Description
Body
The context here is that the ProvidersManager: https://github.com/apache/airflow/blob/main/airflow-core/src/airflow/providers_manager.py creates tight coupling between Airflow core and task sdk making client server separation difficult:
What I mean by that is:
- task sdk depends on core's ProvidersManager (5+ usages)
- API server loads all provider code just for UI metadata(static data)
- Single class handles runtime resources for task sdk, UI metadata, and in some cases infra discovery like CLI portion of providers
Due to such problems, I want to explore a strategy where we can split ProvidersManager architecturally for a runtime + metadata purpose.
I think the success criteria here is and driving principle is that providers are primarily for task execution. API server only needs static metadata for UI forms, which should not come from code execution.
- API server can start without loading provider code for connections, hooks etc
- Task sdk has no dependency on core's ProvidersManager class
- UI metadata comes from static sources (yaml?)
Committer
- I acknowledge that I am a maintainer/committer of the Apache Airflow project.
Metadata
Metadata
Assignees
Labels
area:corekind:metaHigh-level information important to the communityHigh-level information important to the community
Type
Projects
Status
Next 2 Weeks