Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
clarify sdk protection mechanisms
  • Loading branch information
donald-pinckney committed Mar 19, 2026
commit 5426918647176d8db651328ee7d625b99d174dd7
5 changes: 3 additions & 2 deletions references/core/determinism.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,11 @@ For a few simple cases, like timestamps, random values, UUIDs, etc. the Temporal
## SDK Protection Mechanisms
Each Temporal SDK language provides a protection mechanism to make it easier to catch non-determinism errors earlier in development:

- Python: The Python SDK runs workflows in a sandbox that intercepts and aborts non-deterministic calls at runtime.
- Python: The Python SDK runs workflows in a sandbox that intercepts and aborts non-deterministic calls early at runtime.
- TypeScript: The TypeScript SDK runs workflows in an isolated V8 sandbox, intercepting many common sources of non-determinism and replacing them automatically with deterministic variants.
- Go: The Go SDK has no runtime sandbox. Determinism is enforced by developer convention and the optional `workflowcheck` static analysis tool, which detects non-deterministic calls at compile time.
- Go: The Go SDK has no runtime sandbox. Therefore, non-determinism bugs will never be immediately appararent, and are usually only observable during replay. The optional `workflowcheck` static analysis tool can be used to check for many sources of non-determinism at compile time.

Regardless of which SDK you are using, it is your responsibility to ensure that workflow code does not contain sources of non-determinism. Use SDK-specific tools as well as replay tests for doing so.

## Detecting Non-Determinism

Expand Down