Skip to main content

What is Temporal?

Temporal is a scalable and reliable runtime for Durable Executions. Temporal helps you build applications as if failures don’t exist. Your application runs reliably, even when facing issues like network outages or server crashes, which would typically disrupt other applications. The Temporal Platform handles these problems, allowing you to focus on your business logic instead of writing code to detect and recover from failures.

The Temporal System abstracts away failure handling and mitigation. It's an inherently scalable solution. It handles both millions, or even billions, of workflow processes, as well as processes that can last decades:

The Temporal System

The Temporal System

The Temporal platform

The Temporal Platform consists of the Temporal Service and Worker Processes. The Temporal Service supervises the system, while application code is bundled with the Worker Processes. These components work together to create a runtime for your application.

The Temporal Platform

The Temporal Platform

The Temporal Service

A Temporal Service consists of the Temporal Server and a database. Our software-as-a-service (SaaS) offering, Temporal Cloud, provides an alternative to hosting the Temporal Service yourself.

Your Worker Processes are hosted and operated by you, executing your code. Workers run using our SDKs.

Basic component topology of the Temporal Platform

Basic component topology of the Temporal Platform

Temporal Applications

A Temporal Application is a set of Temporal Workflow Executions. Each Temporal Workflow Execution has exclusive access to its local state, runs concurrently with other Workflow Executions, and communicates with them and the environment via message passing.

A Temporal Application can consist of millions to billions of Workflow Executions. Workflow Executions are lightweight and consume few compute resources. If a Workflow Execution is suspended (for example, when waiting), it uses no compute resources at all.

A Temporal Workflow Execution is a re-entrant process. It is resumable, recoverable, and reactive:

  • Resumable: It can continue after being suspended on an awaitable.
  • Recoverable: It can continue after being suspended due to a failure.
  • Reactive: It can respond to external events.

A Temporal Workflow Execution runs a Temporal Workflow Definition, also known as a Temporal Workflow Function, executing your application code exactly once and to completion—whether your code runs for seconds or years, even under heavy load or failure conditions.

Failures and resilience

Temporal Failures represent different types of errors in the system, seen in both the SDKs and Event History.

Handling failure is a key part of development. For more details on the difference between application-level and platform-level failures, check out Handling Failure From First Principles. For how to apply these concepts in Temporal, see Failure Handling in Practice.

In languages that throw errors (or exceptions), throwing a non-Temporal Failure causes the Workflow Task to fail. This results in the Task being retried until it succeeds. Throwing a Temporal Failure (or allowing one to propagate from Temporal calls, such as an Activity Failure from an Activity) causes the Workflow Execution to fail. For more details, see Application Failure.