jason810496 opened a new issue, #67110:
URL: https://github.com/apache/airflow/issues/67110

   ### Background
   
   The May 13 dev@ thread on AIP-108 ([thread][thread]) closed on these points:
   
   - `JavaCoordinator` ships inside the Task SDK 
(`airflow.sdk.coordinators.java`)
     rather than as a separate distribution, on the condition that the
     coordinator interface is **experimental** until a second non-Python SDK
     (Go is the named candidate) validates it.
   - André Ahlert raised an open point that the AIP marks the interface
     experimental but does not define **what graduates it out**. Without that,
     "experimental" has no exit condition.
   
   Today neither `BaseCoordinator` nor `JavaCoordinator` carries any marker
   that tells users the interface may change:
   
   - `task-sdk/src/airflow/sdk/execution_time/coordinator.py:175` — `class 
BaseCoordinator:`
   - `task-sdk/src/airflow/sdk/coordinators/java/coordinator.py:33` — `class 
JavaCoordinator(BaseCoordinator):`
   
   Their docstrings describe the configuration shape and contract, but there
   is no warning about stability and no acceptance gate for promoting the
   interface to stable.
   
   ### What needs to happen
   
   1. Add an explicit experimental marker to `BaseCoordinator` and
      `JavaCoordinator` — at minimum a docstring banner; ideally a runtime
      warning when a user-defined subclass is instantiated outside of
      `airflow.sdk.coordinators.*`.
   2. Document the same status on the public docs page that lands with
      AIP-108 (coordinator user guide) and on the `[sdk] coordinators` config
      entry description.
   3. Write explicit **graduation criteria** in the coordinator user guide:
      what has to be true before the interface is removed from experimental
      and the public API is frozen. Suggested initial criteria, subject to
      review:
      - At least one additional non-Python language SDK lands and uses
        `BaseCoordinator` without requiring breaking changes to the base
        class.
      - The IPC / wire-protocol decisions deferred to AIP-109 are accepted.
      - No outstanding open issue tagged `AIP-108: Coordinator` requires a
        breaking change to `BaseCoordinator`'s public surface.
   4. Decide and document the deprecation policy that applies while the
      interface is experimental (e.g. breaking changes allowed in any
      Task SDK minor release, with a one-cycle deprecation notice for
      config-key renames).
   
   ### Acceptance criteria
   
   - `BaseCoordinator` and `JavaCoordinator` docstrings both state the
     interface is experimental and link to the graduation criteria.
   - The coordinator user guide has a section titled "Stability and
     graduation" with the criteria above (or a refined version after review).
   - The `[sdk] coordinators` config docs include a one-line experimental
     notice.
   - An issue or section in the AIP-108 board tracks each graduation
     criterion so progress against the exit conditions is visible.
   
   ### Context
   
   - Dev@ thread: 
<https://lists.apache.org/thread/gjot4bxj9kygj2fk76kx6tyg8s4hr057>
     (see André Ahlert's message dated 2026-05-13 and Jens Scheffler's
     follow-up on 2026-05-13 about keeping the public API experimental until
     multi-language patterns are clear).
   - AIP-108 wiki: 
<https://cwiki.apache.org/confluence/display/AIRFLOW/AIP-108+Language+Task+SDK+and+the+Language+Coordinator+Layer>
   - Originating PRs that landed the coordinator in the SDK:
     apache/airflow#65956, apache/airflow#65958.
   - Related: #66838 (pluggable communication channels) — a likely source of
     pre-graduation breaking changes.
   
   [thread]: https://lists.apache.org/thread/gjot4bxj9kygj2fk76kx6tyg8s4hr057


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to