jason810496 opened a new issue, #66937:
URL: https://github.com/apache/airflow/issues/66937
### Background
Today a Go task function takes `ctx`, an `sdk.Client` / `sdk.VariableClient`,
and a `*slog.Logger`, and pulls XCom data explicitly:
```go
// go-sdk/example/bundle/main.go
func transform(ctx context.Context, client sdk.VariableClient, log
*slog.Logger) error {
val, err := client.GetVariable(ctx, "my_variable")
...
}
```
Java has just landed Taskflow-style task signatures under #66332, where
the upstream task's return value is declaratively injected into the
downstream task's parameter list rather than pulled via the client. We
want the same shape in Go so authors can write:
```go
func extract(ctx context.Context) (SomeType, error) { ... }
func transform(ctx context.Context, upstream SomeType) error { ... }
```
### What needs to happen
1. Decide how to declare task-to-parameter wiring in `Registry.AddTask`
(does `depends []string` carry positional binding, or do we use typed
task handles returned by `AddTask`?).
2. Use reflection in `bundlev1.NewTaskFunction` to recognise an extra
typed parameter and treat it as an XCom pull from the named upstream.
3. Serialise the binding into the Dag JSON in coordinator-mode so the
supervisor knows which XCom to feed in.
4. Update `example/bundle/main.go` to a Taskflow-style example.
### Acceptance criteria
- A Go task can declare an upstream-typed parameter and receive the
upstream's return value at execution time without calling
`client.GetXCom` explicitly.
- Serialisation matches what the Python supervisor expects for a
Taskflow-wired Dag (validated against `test_dags.yaml`).
- The existing client-pull pattern remains supported.
### Context
- Java parallel: #66332 (Done).
- `@task.stub` argument-passing groundwork: #66330 (Done).
- Same area as task dependency representation: #66331.
---
Drafted-by: Claude Code (Opus 4.7) (no human review before posting)
--
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]