Supported SDKs
On this page
Relay speaks the Conductor executor WebSocket protocol, and it derives that protocol from the public source of the DBOS Transact SDKs. Upstream is moving the Conductor connector out of the MIT-licensed SDK packages and into proprietary ones. Once a connector is proprietary, Relay cannot read it, so the protocol facts it published stay readable but stop being verifiable. This page records the range of SDK versions Relay supports and the evidence behind it.
Supported range
| SDK | Supported up to | Connector in the public package |
|---|---|---|
| Go | v1.6.0 |
yes, dbos/conductor.go, dbos/conductor_protocol.go |
| Python | 3.2.0 |
yes, dbos/_conductor/ |
| TypeScript | 5.2.11 |
yes, src/conductor/ |
| Java | no ceiling yet | yes, 64 files under transact/src/main/java/dev/dbos/transact/conductor/ |
These are upper bounds, not recommendations. Any version at or below the ceiling works, including versions that predate it. An unmodified application built against a supported SDK connects to Relay by pointing its Conductor URL at Relay and needs no code change, no configuration change, and no Relay-side setting.
The ceiling is policy, not a technical limit. Relay is not blocked from talking to a newer SDK; it is blocked from verifying what that SDK does, and the project's rule is that a protocol claim is either cited from a permitted source or proven by a test against a real SDK. The ceiling is revisited whenever upstream publishes, which is what the checks described below are for.
Why the ceiling exists
Three SDKs have already split the connector out of the public package on their
main branches. Those commits are unreleased as of 2026-10-11, so the published
releases still contain the connector.
| SDK | Split commit | Effect |
|---|---|---|
| Go | 0fa3f0dcf1a4611f15a94be9086721e4357235da, "DBOS enterprise" (#498), 2026-10-08 |
deletes dbos/conductor.go, dbos/conductor_protocol.go, and their tests |
| Python | 03fb5c92cde8e107ff333cd2b419f65e02719e99, "Move Conductor Client" (#873), 2026-10-01 |
deletes dbos/_conductor/conductor.py, dbos/_conductor/protocol.py, and tests/test_conductor.py |
| TypeScript | 3b7a8b28e31cb2ed44084d8a6eff006f1fb16e48, "Move Conductor Client" (#1394), 2026-10-01 |
deletes src/conductor/conductor.ts, src/conductor/protocol.ts, and the protocol test |
Java has no such commit. At commit
85b3f0ed0458b72358fb7554bc20931bd61e7897 on main the whole
transact/src/main/java/dev/dbos/transact/conductor/ tree is still present and
public, which makes Java the only SDK left that publishes the wire protocol in
the open. That is why the loss of the Java connector is watched separately, and
why it is worth reacting to quickly rather than at the next release review.
Evidence for each ceiling
Every version claim below names the repository tag it comes from and the package-registry upload date for the same version. Registry timestamps are UTC; repository tag dates are the committer dates of the tagged commits.
Go
- Tag
v1.6.0indbos-inc/dbos-transact-golang, commit04337c15667adcdf5cc057be448ed9545d6f06d9, tagged 2026-10-07. proxy.golang.orgreports@latestasv1.6.0at2026-10-07T16:06:46Z.git ls-tree -r v1.6.0listsdbos/conductor.goanddbos/conductor_protocol.go, so the connector is still in the published module.
Python
- Tag
3.2.0indbos-inc/dbos-transact-py, commitd324156616281d7d4923bc60851617bdbb70ea5e, tagged 2026-09-28. - PyPI reports
dbos3.2.0uploaded2026-09-29T15:43:49, and it is the latest release on the index. - The published
3.2.0distribution containsdbos/_conductor/conductor.pyanddbos/_conductor/protocol.py.
TypeScript
- Tag
v5.2indbos-inc/dbos-transact-ts, commit3f36908f58fd8b3079cbf5372203c7a2d0ba06cc, tagged 2026-09-29. - The npm registry reports
@dbos-inc/dbos-sdk5.2.11published2026-09-29T15:48:15.957Z, andlatestpoints at5.2.11. - The published
5.2.11tarball containsdist/src/conductor/conductor.jsanddist/src/conductor/protocol.js. - The
5.3.xline exists on the registry only aspreviewandtestdist-tags, so no stable release has shipped past the ceiling.
Java
origin/mainofdbos-inc/dbos-transact-javais at85b3f0ed0458b72358fb7554bc20931bd61e7897, dated 2026-10-08, and carries 64 files undertransact/src/main/java/dev/dbos/transact/conductor/with no enterprise package anywhere in the tree.- The latest release tag is
1.2.0, commit0f4fe187b20bd6f5f735d8f99d810aeb90b8314d, tagged 2026-09-30. Maven Central also serves1.3.0-m1through1.3.0-m7milestones. - Because there is no split commit, there is nothing to cap yet.
Protocol pins
The protocol facts in this wiki are pinned in the provenance ledger, which records the repository, commit, and confirmation date for each SDK source. Those pins predate the ceiling and are not bumped by it: the ceiling bounds what an application may run, while the pins bound what Relay's protocol description was derived from. A ceiling bump and a pin refresh are separate changes.
Enforcement
Two checks keep the ceiling from going stale silently.
tests/verifysdk/sdk_ceiling_test.goreads the manifests of the sample applications inexamples/and fails when a pinned SDK version is above the ceiling recorded in this page. It reads files only, runs offline, and is part ofmake test.make watch/java-connectorrunsscripts/watch-java-connector.py, which clones the Java SDK and fails when the Conductor connector package is no longer present at the recorded baseline. It needs network access, so it is not part ofmake check; run it on a schedule or before a release.
Bumping the ceiling
- Re-verify the upstream state: the newest tag of each SDK, the newest registry upload, and whether the connector is still in that published artefact.
- Update this page, including the citations, and record the change in the documentation log.
- Update the constants in
tests/verifysdk/sdk_ceiling_test.goso the example pins are checked against the new bound. - Bump the sample application pins in
examples/and confirm each still builds. The data-plane client in the rootgo.modis deliberately not bumped with them; see ADR 0004. - If the Java connector has moved, update the baseline in
scripts/watch-java-connector.pyand record the new last-known-good commit and file count.