The Temporal Platform explained.
Temporal is a scalable and reliable runtime for Reentrant Processes called Temporal Workflow Executions.
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.
A Temporal Application is a set of Temporal Workflow Executions. Each Temporal Workflow Execution has exclusive access to its local state, executes concurrently to all other Workflow Executions, and communicates with other Workflow Executions and the environment via message passing.
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.
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, also called a Temporal Workflow Function, your application code, exactly once and to completion—whether your code executes for seconds or years, in the presence of arbitrary load and arbitrary failures.
A Temporal Client is available in each SDK and provides a set of APIs to communicate with a Temporal Cluster.
The most common operations that a Temporal Client enables you to perform are the following:
- Start a Workflow Execution.
- Get the result of Workflow Execution.
- Signal a Workflow Execution.
- Query a Workflow Execution.
- List Workflow Executions.
A Temporal SDK is a language-specific library that offers APIs to do the following:
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:
Each SDK emits metrics which can be ingested into monitoring platforms. See the SDK metrics reference for a complete list.