Skip to content

Add a Language SDK spec to the Task SDK docs - #72765

Merged
jason810496 merged 4 commits into
apache:mainfrom
jason810496:docs/lang-sdk/language-sdk-spec
Sep 17, 2026
Merged

jason810496 merged 4 commits into
apache:mainfrom
jason810496:docs/lang-sdk/language-sdk-spec

Conversation

@jason810496

Copy link
Copy Markdown
Member

Why

From my perspative, it's necessary to introduce the generic user-facing interface spec for all the SDKs. To make sure user (or agents) that work on the further SDKs still respect the existing terms and convenstion (e.g. using TaskHandler as interface name for the mixed-language Task instead of mentioning the "Dag" term).

What

I intentionally keep this as a pubic task-sdk docs instead of folding in the contributing-docs/30_new_language_sdk.rst. Since the doc only describes the public user interface instead of the internal implementation detail (this doc doesn't mention the msgpack, execution API, etc).


Was generative AI tooling used to co-author this PR?

@jason810496 jason810496 self-assigned this Sep 9, 2026
@jason810496
jason810496 requested a review from uranusjr September 9, 2026 03:31
@jason810496 jason810496 added the type:doc-only Changelog: Doc Only label Sep 9, 2026
@jason810496
jason810496 force-pushed the docs/lang-sdk/language-sdk-spec branch from c6bf9f8 to 95cf5a6 Compare September 9, 2026 05:21
@jason810496
jason810496 marked this pull request as draft September 9, 2026 06:09
@jason810496
jason810496 force-pushed the docs/lang-sdk/language-sdk-spec branch 4 times, most recently from 5801b9b to 497738b Compare September 9, 2026 06:23
Three Lang SDKs are designing their user-facing authoring interfaces at
once, and each was settling the same questions inside its own ADR: what
separates a task handler from a native Dag, what to call the thing that
holds either of them, and where a task body gets its context and client.
Naming those once, somewhere every SDK's docs can point at, means a Go,
Java, or TypeScript author reads about the same concepts under different
spellings rather than three unrelated vocabularies.
@jason810496
jason810496 force-pushed the docs/lang-sdk/language-sdk-spec branch from 497738b to dd4df43 Compare September 9, 2026 07:10
@jason810496
jason810496 marked this pull request as ready for review September 9, 2026 08:22
The name should say what the SDK registers, and what it registers is a
task: Python declares it with @task.stub, gives it a task_id, and the SDK
supplies only its body. "Handler" described the callable rather than the
thing it stands for, leaving these docs using a word no other part of
Airflow uses for a task.
Comment thread task-sdk/docs/lang-sdk-spec.rst Resolved
Comment thread task-sdk/docs/lang-sdk-spec.rst Resolved
Comment thread task-sdk/docs/lang-sdk-spec.rst Resolved
Python declares the task; an SDK supplies only its body. Naming the SDK
object after the task overloads a word the native surface already uses for
something the user creates with dag.Task, so it names the role the SDK
actually plays instead.
@jason810496
jason810496 requested a review from ashb September 13, 2026 00:30

@jason810496 jason810496 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ashb,
Just kindly bumping this PR and #72043 up.
Would appreciate approve if there isn't more concern on the user facing interface, then I will work on aligning the interface toward the latest design, thanks.

@jason810496
jason810496 merged commit 27f8b68 into apache:main Sep 17, 2026
70 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants