Skip to content

Refactor ExecutableCoordinator interface based on dev-list design discussion #66936

Description

@jason810496

Background

The current ExecutableCoordinator
(providers/sdk/executable/src/airflow/providers/sdk/executable/coordinator.py)
is the shared Python-side launcher for any native-executable SDK (Go, Rust,
C++, Zig, ...) that produces an AFBNDL01-trailered bundle. It currently
exposes can_handle_dag_file, get_code_from_file, dag_parsing_cmd,
and task_execution_cmd and handles both the pure-executable Dag path
and the Python @task.stub Dag path.

A design discussion is in flight on the dev list about how this interface
should evolve as more lang-SDKs adopt it. The decision is not yet final;
this issue exists to track the eventual refactor so the deferred work has
a stable URL.

What needs to happen

  1. Reach consensus on the dev-list thread for the new interface shape.
  2. Apply the agreed-upon refactor to ExecutableCoordinator.
  3. Update the bundle-spec doc (providers/sdk/executable/docs/bundle-spec.rst)
    to match.
  4. Update the Go SDK's bundlev1server.Serve coordinator-mode dispatcher
    (ADR 0003) only if the interface change requires a wire-level adjustment.
  5. Migrate any in-tree subclasses (Java provider, future Go provider) at
    the same time.

Acceptance criteria

  • ExecutableCoordinator interface matches the dev-list outcome.
  • ADR 0003 / 0004 in go-sdk/adr/ are updated to reflect the new shape.
  • E2E tests still pass for both the pure-executable and Python-stub paths.

Context


Drafted-by: Claude Code (Opus 4.7) (no human review before posting)

Metadata

Metadata

Assignees

Labels

area:providersgo-sdkLabel to track work items for golang task sdkkind:featureFeature Requestskind:taskA task that needs to be completed as part of a larger issueon holdpriority:highHigh priority bug that should be patched quickly but does not require immediate new release

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions