Skip to content

Experimental APIs [WiP]#10072

Draft
stephanos wants to merge 1 commit intomainfrom
stephanos/experimental-apis
Draft

Experimental APIs [WiP]#10072
stephanos wants to merge 1 commit intomainfrom
stephanos/experimental-apis

Conversation

@stephanos
Copy link
Copy Markdown
Contributor

@stephanos stephanos commented Apr 25, 2026

What changed?

This PR prototypes an experimental API development flow without long-lived Temporal feature branches.

It adds:

  • frontend variant registration behind frontend.apiVariant
  • generated experimental api-go modules for additive RPCs (ping, tinker)
  • generated wrappers for new fields on existing stable messages (fairness)
  • functional coverage in Temporal for additive RPC variants and the fairness wrapper round-trip

Why?

Developing in-progress APIs across api, api-go, and temporal currently requires feature branches, repeated rebases, and a large final merge. This change explores a smaller incremental path where Temporal can depend on temporary experimental api-go modules until the stable API lands.

How did you test it?

  • built
  • run locally and tested manually
  • covered by existing tests
  • added new unit test(s)
  • added new functional test(s)

Local verification included:

  • go test ./cmd/experimentgen in api-go
  • go test ./... in the generated ping, tinker, and fairness experiment modules
  • go test -tags 'test_dep experimental' ./service/frontend/services
  • go test -tags 'test_dep experimental' ./tests/testcore ./tests -run 'TestExperimentalApi_(Ping|Tinker|Stable|FairnessWrapper)'
  • go test -c -o /dev/null ./tests -tags 'disable_grpc_modules,test_dep,experimental'
  • make fmt-imports
  • make lint-code

Potential risks

This is prototype-only infrastructure and increases complexity in frontend registration, test wiring, and module generation. The wrapper path intentionally relies on protobuf unknown fields, so it is best suited to additive field experiments and should stay temporary until the stable API is merged.

@stephanos stephanos changed the title Stephanos/experimental apis Experimental APIs [WiP] Apr 25, 2026
@stephanos stephanos force-pushed the stephanos/experimental-apis branch 28 times, most recently from 24923a8 to 1e06e05 Compare April 25, 2026 23:06
@stephanos stephanos force-pushed the stephanos/experimental-apis branch from 1e06e05 to eb1bde8 Compare April 25, 2026 23:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant