Temporal
The Temporal Platform explained.
Temporal is a scalable and reliable runtime for Reentrant Processes called Temporal Workflow Executions What is a Workflow Execution? A Temporal Workflow Execution is a durable, scalable, reliable, and reactive function execution. It is the main unit of execution of a Temporal Application.
The Temporal System
Temporal Platform
The Temporal Platform consists of a Temporal Cluster What is a Temporal Cluster? A Temporal Cluster is the Temporal Server paired with persistence. What is a Worker Process? A Worker Process is responsible for polling a Task Queue, dequeueing a Task, executing your code in response to a Task, and responding to the Temporal Server with the results.
The Temporal Platform
The Temporal Cluster is open source and can be operated by you. The Temporal Cloud is a set of Clusters operated by us.
Worker Processes are hosted by you and execute your code. They communicate with a Temporal Cluster via gRPC.
Temporal Application
A Temporal Application is a set of Temporal Workflow Executions What is a Workflow Execution? A Temporal Workflow Execution is a durable, scalable, reliable, and reactive function execution. It is the main unit of execution of a Temporal Application.
A Temporal Application can consist of millions to billions of Workflow Executions. Workflow Executions are lightweight components. A Workflow Execution consumes few compute resources; in fact, if a Workflow Execution is suspended, such as when it is in a waiting state, the Workflow Execution consumes no compute resources at all.
Reentrant Process
A Temporal Workflow Execution is a Reentrant Process. A Reentrant Process is resumable, recoverable, and reactive.
- Resumable: Ability of a process to continue execution after execution was suspended on an awaitable.
- Recoverable: Ability of a process to continue execution after execution was suspended on a failure.
- Reactive: Ability of a process to react to external events.
Therefore, a Temporal Workflow Execution executes a Temporal Workflow Definition What is a Workflow Definition? A Workflow Definition is the code that defines the constraints of a Workflow Execution.
Temporal SDK
A Temporal SDK is a language-specific library that offers APIs to do the following:
- Construct and use a Temporal Client
- Develop Workflow Definitions
What is a Workflow Definition?
A Workflow Definition is the code that defines the constraints of a Workflow Execution.
- Develop Worker Programs
What is a Worker Program?
A Worker Program is the static code that defines the constraints of the Worker Process, developed using the APIs of a Temporal SDK.
A Temporal SDK enables you to write your application code using the full power of the programming language, while the Temporal Platform handles the durability, reliability, and scalability of the application.
Temporal currently offers the following SDKs:
- Get started with the Go SDK
- Get started with the Java SDK
- Get started with the PHP SDK
- Get started with the Python SDK
- How to use the TypeScript SDK
Each SDK emits metrics which can be ingested into monitoring platforms. See the SDK metrics reference for a complete list.
Auth
Temporal offers methods of authenticating and authorizing client API calls within our SDKs.
SDKs in development
The following SDKs are in alpha/pre-alpha development stages, but are not yet supported in the Developer's guide:
Third-party SDKs
The following third-party SDKs exist but are not supported in the Developer's guide:
Temporal Client
A Temporal Client is available in each SDK and provides a set of APIs to communicate with a Temporal Cluster What is a Temporal Cluster? A Temporal Cluster is the Temporal Server paired with persistence.
The most common operations that a Temporal Client enables you to perform are the following:
- Get the result of Workflow Execution.
- List Workflow Executions.
- Query a Workflow Execution.
- Signal a Workflow Execution.
- Start a Workflow Execution.