Skip to content

SPIKE: Investigate separation strategy for Triggerer and DAG Processor for server-client separation #51552

@kaxil

Description

@kaxil

Investigate where Triggerer and DAG Processor should live in the AIP-72 server-client separation architecture.

Background

Triggerer and DAG Processor:

  • Both are currently in airflow-core
  • Both have dependencies on Task SDK execution-time components
  • They create circular dependency issues between server and SDK

Open Questions

Where should Triggerer & DAG Processor live? Server or Client?

Option 1: Create airflow-core-execution provider

  • Contains Task SDK Execution logic, worker, trigger, and DAG Processor
  • Pros: Isolated execution concerns, clear separation
  • Cons: Package explosion, coupling between apache-airflow-task-sdk and apache-airflow-core-execution

Option 2: Move Triggerer & DAG Processor to Task SDK

  • Relocate both components to apache-airflow-task-sdk
  • Pros: Execution components together, simpler dependency graph, enables future multi-language DAG authoring
  • Cons: Task SDK becomes heavier, multi-language implementation complexity

Can we do them in separate phases i.e. not have explicit dependencies in metadata but import them dynamically if they are installed.

Multi-language SDK Implications:

  • Future-proofing: Enables Go SDK and other languages to have native DAG definition & processing
  • Language-specific optimizations: Each SDK could optimize for their ecosystem (Go's concurrency, etc.)
  • Consistency challenges: Risk of different behaviors across language implementations
  • Maintenance burden: Multiple Triggerer/DAG Processor implementations to maintain

Metadata

Metadata

Assignees

No one assigned

    Type

    No fields configured for Task.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions