Temporal: Durable execution platform for workflows
Distributed system for durable workflow execution with automatic failure handling, retries, and state persistence.
Learn more about Temporal
Temporal is a durable execution platform that runs application logic called Workflows in a fault-tolerant manner. The system automatically handles intermittent failures, retries failed operations, and maintains workflow state across process restarts and infrastructure failures. Temporal originated as a fork of Uber's Cadence and is implemented in Go with support for multiple programming languages through SDKs. It is commonly used for microservice orchestration, distributed cron jobs, and complex business process automation.
Durable Execution
Workflows survive process crashes, network failures, and infrastructure outages by persisting execution state. The platform automatically resumes workflows from their last checkpoint without data loss.
Automatic Retry Logic
Built-in retry mechanisms handle transient failures without manual intervention. The system distinguishes between retryable and non-retryable errors to optimize execution flow.
Multi-Language Support
Provides SDKs for multiple programming languages while maintaining workflow portability. Developers can implement workflows and activities in their preferred language ecosystem.
import asyncio
from temporalio import activity, workflow
from temporalio.client import Client
from temporalio.worker import Worker
@activity.defn
async def say_hello(name: str) -> str:
return f"Hello, {name}!"
@workflow.defn
class GreetingWorkflow:
@workflow.run
async def run(self, name: str) -> str:
return await workflow.execute_activity(
say_hello,
name,
schedule_to_close_timeout=timedelta(minutes=5),
)
async def main():
client = await Client.connect("localhost:7233")
async with Worker(
client,
task_queue="greeting-task-queue",
workflows=[GreetingWorkflow],
activities=[say_hello],
):
result = await client.execute_workflow(
GreetingWorkflow.run,
"World",
id="greeting-workflow-001",
task_queue="greeting-task-queue",
)
print(f"Workflow result: {result}")
if __name__ == "__main__":
asyncio.run(main())See how people are using Temporal
Related Repositories
Discover similar tools and frameworks used by developers
Renovate
Automated dependency updates via pull requests across 90+ package managers.
node_exporter
Collects Unix system metrics for Prometheus monitoring.
Grafana
Query and visualize metrics from multiple data sources.
Dockge
Self-hosted Docker Compose manager with real-time terminal streaming.
OpenZFS
Enterprise filesystem with volume management, data integrity, snapshots, and compression.
Related Reading
Guides and comparisons from the Greptile content library
Best Code Review Tools in 2026
The best code review tools in 2026, compared on pricing, features, deployment options, and ideal use cases for teams of any size.
API Security: What It Is, Why It Matters, and 7 Best Practices for 2026
What API security is, the OWASP API Security Top 10 risks with real examples from open source PRs, seven best practices to start with, and how to test your APIs with static scanning, dynamic testing, and runtime validation.
Flaky Tests: What Is a Flaky Test and How Do You Manage Them?
What flaky tests are, what causes them, how to detect them, and 12 ways to fix them. Plus why end-to-end tests are more prone to flakiness, and how seeing what actually happened during a run helps you tell a test problem from a code problem.
What is agentic coding? Benefits, risks, and best tools to consider
What engineering leaders need to know about agentic coding: how it differs from AI coding and vibe coding, how it works, the benefits and risks, and the tools worth evaluating.