Build Invincible Apps

The platform for running mission critical code at scale.

Temporal in 2 Minutes

Use Cases

  • Temporal is a perfect fit for orchestrating microservices.

    It guarantees workflow completion of any size and complexity, has built-in support for exponential activity retries, and simplifies defining workflow compensation logic with native Saga pattern support.

    You can define retries, rollbacks, cleanup, and even human intervention steps in the case of failure. Workflows are defined in general-purpose programming languages that bring the ultimate flexibility for defining workflows of any complexity, especially when compared to markup-based DSLs.

    Temporal provides full visibility into end-to-end workflows that can span multiple services. It makes complex microservices orchestration manageable by providing a high level of insight into each workflow's state. Contrast this with ad-hoc orchestration based on queues where gaining visibility of your workflows is virtually impossible.

    Learn More, with examples from Uber and Banzai Cloud
  • For software that interacts with money (especially someone else's), reliability and consistency are top priorities.

    Traditional solutions for financial transactions almost always introduce lurking reliability issues that can cause loss of revenue. Temporal eliminates these issues by providing an inherently reliable foundation for critical financial operations based on:

    • Native support for the SAGA pattern which supports custom compensation and rollback logic
    • Support for long-running operations
    • Completion guarantee for workflows of any size and complexity
    • Built-in support for exponential activity retries

    There have even been cases where switching to Temporal's technology immediately resulted in financial gains for the company because their previous solution was leaking money.

    Learn More | See Expenses code sample
  • Provisioning resources depends on a series of potentially long-running operations with many possibilities for intermittent failures.

    While existing deployment tools support simple operations, many scenarios may still require a custom provisioning flow.

    Some provisioning operations may take hours or even days to complete. Ad-hoc provisioning solutions are often unable to handle these cases resulting in application failures and an inconsistent operation state.

    Temporal provides excellent building blocks for resource provisioning:

    • Support for long-running operations
    • Polling
    • Responding to events
    • Automatic retries
    • Routing to specific hosts

    If a long-running provisioning workflow fails during its execution, Temporal would handle the error and resume workflow execution from the point where the failure occurred.

    Learn More, with examples from Kubernetes and Consul
  • Temporal provides guaranteed execution with at-least-once semantics with automatic retries.

    Polling configuration can be as straightforward or sophisticated as needed:

    • Workflows can run on a cron schedule with a single configuration setting.
    • Alternatively, you can manually control the delays between intervals with `sleep` commands. For example, you can switch to more frequent executions in case of detected downtime.

    The history service provides visibility into history for periodic workflow executions.

    Scalability is another crucial advantage of using Temporal for periodic execution. Many use cases require periodic execution for a large number of entities. At Uber, some applications run recurring workflows for each customer. Imagine 100s of millions parallel cron jobs that don't require a separate batch processing framework.

    Temporal's support for long-running Activities and unlimited retries also makes it a great fit for monitoring use cases.

    Learn More, with example Cluster Lifecycle monitoring workflow

Case Studies

Relied on by the companies other companies rely on.See all...

Experience at the largest scale. Backing from the greatest investors.

Join us

Seriously, we're hiring

samar abbas
Samar Abbas (CTO)
AWS, Microsoft, Uber engineering leadership veteran, created Durable Task Framework which was the basis of Azure Durable Functions. Co-created Cadence (Temporal predecessor) with Maxim.
Maxim Fateev
Maxim Fateev (CEO)
AWS, Google, Uber, engineering leadership veteran, led development of SQS replicated message store and the SWF project at AWS. Co-created Cadence (Temporal predecessor) with Samar.
vc
vc
vc

Temporal Vs.

What's the difference between Temporal and...

  • Most developers hand-write async flows using queues and job processors.

    This often requires requisitioning new infrastructure, and hand-writing often buggy, not-well-distributed and hard-to-test code. Temporal offers a battle tested framework enabling you to capture and define your business logic in a structured way and run it it atop a single set of infrastructure at massive scale. It allows developers to focus on your actual business requirements and not plumbing work.

  • DAG-based Workflow Engines like Airflow/Prefect/Luigi are pipeline solutions aimed at data scientists running at a small-to-medium scale.

    Temporal provides a code-first development environment which can be used to build data pipelines, orchestrate microservices, provision resources and much more at any scale. Code written with Temporal is executed directly which enables users to easily integrate Temporal into their existing development, testing, and debugging environmentss.

    While Temporal is a great option for data pipelines, this encompasses only a very small subset of its use cases. Temporal enables development of applications of all shapes and sizes, regardless of scale.

    Temporal targets developers. All code written with Temporal runs directly, eliminating any extra compilation steps often required by DAG-based solutions. This provides extra flexibility which is impossible to achieve with more rigid DAG based systems.

  • BPM Engines like Camunda Zeebe define their workflows using a flow-chart based DSL such as BPMN.

    Flow-chart based workflow DSLs suffer from being bound to a specific set of features and capabilities provided by the underlying workflow language they use. Even though they promote the visualization aspect of workflow design, the actual execution semantics are expressed as a mix of programming and expression languages which are enforced by the specific runtime implementation. Temporal does not suffer from these types of restrictions enabling you to fully define your workflows using a programming language. This provides a high level of flexibility not only with defining your workflow logic but also testing and debugging in the development environment of your choice.

    BPM engines translate workflow definition markup into code, which requires additional compilation steps. This kind of code generation is approached differently by each runtime engine using tools they chose. Temporal eliminates the intermediate compilation steps enabling you to express your workflow logic directly in code. In addition, Temporal provides you with high-level concepts such as asynchronous invocations, retries, error propagation and compensation which can be expressed much easier than in BPM-based solutions, especially for larger workflows.

  • JSON/YAML-based Workflow Engines like AWS Step Functions are aimed at high scale, light complexity applications.

    Workflow engines based on declarative DSLs contain a very small set of features and typically target very specific technology domains. Similar to BPM-based engines, they require additional compilation steps to translate the workflow definitions into executable code. They also often target stateless orchestration use cases only. Temporal not only eliminates the intermediate compilation steps allowing you to express your workflow logic directly in code, but it also targets a much larger set of use cases. It can be used to build data pipelines, orchestrate microservices, provision resources and much more. Code written with Temporal is executed directly which enables users to easily develop, debug, and test their workflows using a development environment of their choice.

    Step Functions can be a great service for non-developers or technical managers to define business logic without writing code. While Step Functions is a great service there is no open source implementation provided which puts it into a much different class compared to Temporal.

    Temporal is an open source platform which enables you to deploy your workflow applications on environments of your choice. Step Functions on the other hand is only available as a service from AWS.

    Temporal targets developers and all code written with Temporal runs directly instead of being translated from a DSL. This gives you flexibility which is impossible to achieve with more rigid DSL based systems.

    Temporal provides you with high-level concepts such as asynchronous invocations, retries, error propagation and compensation which can be expressed much easier and are often not existing in domain-specific DSL based solutions.

“HashiCorp needed to build long-running, reliable, fault-tolerant tasks for the HashiCorp Cloud Platform.

Temporal’s technology satisfied all of these requirements out of the box and allowed our developers to focus on business logic.

Without Temporal’s technology, we would’ve spent a significant amount of time rebuilding Temporal and would’ve very likely done a worse job.”

Mitchell HashimotoMitchell Hashimoto / Co-founder, Hashicorp