Temporal is the open source platform for mission critical code that interacts with unreliable, distributed services.
It guarantees that workflow code eventually completes, has built-in support for exponential activity retries, and simplifies the coding of the compensation logic with native Saga pattern support.
You can define retries, rollbacks, or even a human intervention step in the case of failure. Workflows are defined in general-purpose programming languages that bring the ultimate flexibility especially when compared to text-based DSL engines.
Temporal provides full visibility into each workflow's state. Contrast this with ad-hoc orchestration based on queues where getting a current status of each request is virtually impossible.
Seriously, we're hiring
This often requires requisitioning new infrastructure, and hand-writing often buggy, not-well-distributed and hard-to-test code with a lot of ad hoc code to review that has nothing to do with the business logic. Temporal offers a battle tested framework to organize all async business logic, running it atop a single set of infrastructure at massive scale.
DAG-based Workflow Engines like Airflow/Prefect/Luigi are pipeline solutions aimed at data scientists running at a small-medium scale. Whereas Temporal provides a code-first development environment which 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 use the development, debugging and testing processes they already know and love.
While Temporal is a great option for data pipelines, we are not a data pipeline framework. Temporal enables the development of apps of all shapes, sizes and scales.
Temporal targets developers and all code written with Temporal runs directly instead of compiling a intermediate DAG. This gives you flexibility which is impossible to achieve with more rigid DAG based systems.
Temporal provides a strongly-consistent code-first development environment which can be used for orchestrating microservices, building data pipelines, provisioning resources and much more. Code written with Temporal is executed directly which enables users to use the development, debugging and testing processes they already know and love.
Temporal targets developers and all code written with Temporal runs directly instead of being translated to an intermediate representation. This gives you flexibility which is impossible to achieve with DSL approaches.
Whereas Temporal provides a code-first development environment which 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 use the development, debugging and testing processes they already know and love.
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 system which enables developers to test locally, deploy to their own hardware and more. Step Functions is only available as a service from AWS which puts you at the mercy of their decisions.
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.
Step Functions does not support signaling and other complex "actor" features. This drastically restricts the potential use cases for Step Functions.
“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.”