Discover and explore top open-source AI tools and projects—updated daily.
temporalioSamples for building resilient, scalable applications with Temporal Go SDK
Top 46.1% on SourcePulse
Summary
This repository provides a comprehensive collection of sample applications for the Temporal Go SDK, designed to illustrate the capabilities of Temporal Server. It targets developers building stateful, distributed applications in Go, offering practical examples of various Temporal features and best practices to accelerate adoption and understanding.
How It Works
This repository showcases Temporal's distributed systems capabilities through a comprehensive suite of Go-based sample applications. It demonstrates core concepts like Workflows, Activities, Signals, and Queries, emphasizing Temporal's deterministic execution model. Samples guide users on correctly implementing concurrency using Temporal coroutines (workflow.Go()) and selectors (selector.Select()) to avoid non-determinism, a critical aspect for reliable stateful applications.
Quick Start & Requirements
Temporal Server must be running locally (via VSCode Remote Containers or manual setup). Clone the repository to begin. The 'helloworld' sample is recommended as a starting point. Specific prerequisites beyond Temporal Server and the Go SDK are not detailed.
Highlighted Details
ContinueAsNew), cancellation, cron jobs, schedules, encryption, external payload storage (S3), queries, sessions, signals, search attributes, tracing, OpenTelemetry, and worker versioning.Maintenance & Community
Links to the Temporal Server (temporalio/temporal) and Go SDK (temporalio/sdk-go) repositories are provided, along with Go SDK documentation (docs.temporal.io/dev-guide/go). Further community or maintenance details are not specified in the README.
Licensing & Compatibility
The repository's README does not specify a license. This omission requires clarification for adoption decisions, particularly regarding commercial use or closed-source integration.
Limitations & Caveats
Some features, such as 'Eager Workflow Start,' are experimental. The samples strictly enforce Temporal's deterministic execution rules, requiring the use of Temporal coroutines (workflow.Go()) and selectors (selector.Select()) over native Go concurrency primitives to prevent non-determinism.
2 days ago
Inactive
temporalio
flyteorg