We’re looking to explore using Temporal Nexus but see that so far, it’s only available in the Go and Java SDKs. Do you know when this will be released for the Python SDK?
Thank you in advance for your help.
Hi @rhornw yes we’re targeting Pre-release Nexus support in the Python SDK in the very near future and a Public Preview a month or two after that!
Some more Temporal Nexus info below:
- Tracking issue for all SDKs
- Go SDK and Java SDK support for Nexus is available today!
- Python SDK & Typescript SDK are under active development
- Release targets:
- Pre-release will be available first - we’d love early feedback!
- Public Preview - a month or two after – suitable for production use cases
- GA to follow – once we’ve incorporated any fine tuning feedback from Public Preview
- Additional SDKs being planned for later this year
As noted in the #nexus in Temporal Slack – drop by and say hi!
- We’ll update the SDKs listed in the Temporal Nexus docs as new SDKs get Nexus support
- Each SDK developer guide will list the release stage of Nexus support at the top of:
- Go SDK Nexus dev guide
- Java SDK Nexus dev guide
- Python SDK Nexus Dev Guide will surface when available (currently 404)
- TypeScript SDK Nexus Dev Guide will surface when available (currently 404)
Also the Temporal Nexus GA blog post has some good videos from Netflix and Miro along with the Nexus talk from Replay London 2025 – definitely check those out if you haven’t seen them already!
Python SDK version 1.14.1 now has experimental Nexus Pre-release support!
- Python SDK Nexus dev guide & sample
- We’d love early feedback so please try this out and let us know what you think!
- Follow-on releases once feedback has been incorporated:
- Public Preview release, suitable for production use with formal support.
- GA targeted for later this year.
Thanks for adding Nexus to the Python SDK!
Is there a forum for discussing Nexus in general? I work at a polyglot company. Ideally we’d like to use Nexus endpoints to connect workflows managed by different teams in various languages:
- Python
- TypeScript
- .NET
- Ruby
- PHP
- Java
The various examples for Nexus (samples-python, samples-java, etc.) are helpful in showing how to connect a caller and handler, but they assume the caller and handler are written in the same language. The service contract for Python is defined in Python, that for Java in Java, etc. How would one share a service contract between different languages? Could the service contract be defined in JSON or some other language-agnostic format?
If this is the wrong place to raise these questions, please suggest where I should post this.
Thanks again!
Could the service contract be defined in JSON or some other language-agnostic format?
Hi @benissimo
yes the Nexus service contract can be defined as JSON today.
Nexus payloads that are native language types are serialized to JSON using the default Data Converter (the same Data Converter used for serializing other Temporal payloads):
If a value isn’t null, binary, or a Protobuf, it is encoded as JSON. Most common input types — including strings, integers, floating point numbers, and booleans — are serializable as JSON. If any part of it is not serializable as JSON, an error is thrown.
Nexus dev guide examples - native types → JSON payloads
- Python SDK: define Nexus service contract - native types are serialized to JSON.
- Java SDK: define Nexus service contract - serialized to JSON using Jackson annotations.
- Go SDK: define Nexus service contract - native types are serialized to JSON.
Must ensure consistent mapping of native type field names → JSON field names
- Use JSON decorators, annotations, and struct tags to ensure consistent JSON field names across Nexus callers and handlers in different languages:
- Java & TypeScript: often camelCase (
firstName) - Python: often snake_case (
first_name) - Go: PascalCase by default unless struct tags used (
FirstName) - This can lead to a
firstNamevsFirstNamevsfirst_namemismatch.
- Java & TypeScript: often camelCase (
Nexus JSON schema-first contracts & code gen (experimental prototype)
- Codegen to speed creation of Nexus handlers & clients
- Based on https://quicktype.io.
- Polyglot support with consistent mapping of JSON fields across languages via codegen.
- Layers on top of the flexible and open “generic pipe” that Nexus supports today.
GitHub - bergundy/nexus-idl-prototype
- Sample:
- Nexus JSON service contract
- Nexus TypeScript codegen output
- Nexus Python codegen output
- Nexus Go codegen output
- Other languages coming soon …
- Sample:
- Would encourage everyone to give this a try – we’d love your feedback!

Nexus gRPC-style protobuf contracts & code gen (experimental prototype)
Thanks, I was hoping something like this existed. And good point calling out the differences in how each of these languages serialize field names to JSON. I wish Nexus had chosen to define service contracts in some language agnostic schema directly (JSON, YAML, Protobuf, whatever) and then provided code generators. A service contract is, at the end of the day, a schema, not code. Avro schemas in Kafka, OpenAPI specs, etc. – you can generate code from them, sure, but they are schemas first, not code first. I’m curious why Nexus chooses to treat service contracts as code first, and only implicitly as schemas.
We’ll try out these repos as workarounds. Thanks for sharing!
Thanks @benissimo, note the above repos are from folks that work at Temporal. We do plan to incorporate these prototypes into Nexus once they graduate the early prototype stage to support schema-first Nexus contracts and codegen.
You may also want to checkout https://github.com/cludden/protoc-gen-go-temporal which can generate Nexus handlers out of proto annotations if you want more generated code with less flexibility.
I’m curious why Nexus chooses to treat service contracts as code first, and only implicitly as schemas.
We started with an open/flexible “generic pipe” similar to how the rest of Temporal works as the base layer and are adding more opinionated schema-first contracts as a layer on top.
Is there a forum for discussing Nexus in general?
Yes drop by #nexus community channel in Temporal Slack!