temporal

Temporal service

open-sourceagent-frameworks
Visit WebsiteView on GitHub
19.2k
Stars
+1598
Stars/month
10
Releases (6m)

Overview

Temporal is a durable execution platform that enables developers to build scalable, reliable applications without sacrificing productivity. The platform executes units of application logic called Workflows in a resilient manner, automatically handling intermittent failures and retrying failed operations. Originally forked from Uber's Cadence, Temporal is developed by Temporal Technologies and has evolved into a mature technology for building fault-tolerant distributed systems. The platform abstracts away the complexity of handling failures, timeouts, and retries, allowing developers to focus on business logic rather than infrastructure concerns. Temporal provides comprehensive tooling including a CLI for management operations, a Web UI for monitoring and debugging workflows, and SDKs for multiple programming languages. The system is designed to handle long-running processes that may span minutes, hours, or even days, ensuring they complete successfully despite various types of failures. This makes it particularly valuable for building mission-critical applications where reliability and data consistency are paramount.

Pros

  • + Automatic failure handling and retry logic eliminates complex error recovery code
  • + Mature, battle-tested technology originally developed at Uber with strong reliability track record
  • + Comprehensive tooling ecosystem including CLI, Web UI, and multi-language SDK support

Cons

  • - Requires learning workflow-based programming paradigms which can have a steep learning curve
  • - Additional infrastructure complexity requiring Temporal server deployment and maintenance
  • - Overhead for simple applications that don't require durable execution guarantees

Use Cases

Getting Started

Install Temporal CLI with `brew install temporal`, then start the local development server using `temporal server start-dev`, and finally explore the platform by running sample workflows from the official Go or Java repositories.