Skip to content

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

@jason810496

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
No fields configured for issues without a type.

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions