Get Started Docs Learn Cloud Blog Use Cases Temporal Github Repository Sign Up for Cloud


Constraining Language Runtimes for Deterministic Execution

Join the conversation!

May 18, 2023 at 9am PDT/12pm EDT

Ensuring deterministic execution usually requires solving two separate problems: shared state mutation and inherent non-deterministic constructs within the system (e.g., time, random, I/O, concurrency, etc). Temporal’s unique programming environment requires that workflow code executes deterministically. This means that the language runtimes must perform accurately and consistently. Despite this need for precision, it is still important to allow users to choose the language they prefer.

During this conversation, we will explore the various challenges we have encountered while using different language runtimes to execute workflow code deterministically. We will discuss the techniques that have proven effective, as well as those that have not, and provide insight into what the Temporal team has planned for the future. In addition to discussing our current approaches, we will discuss other promising approaches, such as WASM and system-level deterministic execution, as well as their potential drawbacks.

Our discussion will encompass a range of language runtimes, including Go, Node.js, Python, .NET, and Java Virtual Machine.

Key takeaways:

  • Learn about the challenges of achieving deterministic execution and how Temporal's unique programming environment requires workflow code to be deterministic
  • Gain insight into Temporal's planned approach to designing language runtimes and overall architecture for deterministic execution
  • Hear about innovative approaches that Temporal is considering to address these challenges in the future

Chad Retz

Software Engineer
Temporal Technologies

About the presenter

Chad works on the SDK team and helps develop SDKs in many languages. In addition to work on existing SDKs, Chad has also developed the Python and .NET SDKs.

YouTube Twitter LinkedIn Slack