Temporal Go SDK
Temporal is a distributed, scalable, durable, and highly available orchestration engine used to execute asynchronous long-running business logic in a scalable and resilient way.
"Temporal Go SDK" is the framework for authoring workflows and activities using Go language.
How to use
Clone this repo into the preferred location.
git clone https://github.com/temporalio/sdk-go.git
See samples to get started.
Documentation is available here. You can also find the API documentation here.
Using slog
If using Go version 1.21+ the Go SDK provides built in integration with the standard slog package.
package main
import (
"log/slog"
"os"
"go.temporal.io/sdk/client"
"go.temporal.io/sdk/log"
"go.temporal.io/sdk/worker"
)
func main() {
clientOptions := client.Options{
Logger: log.NewStructuredLogger(
slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
AddSource: true,
Level: slog.LevelDebug,
}))),
}
temporalClient, err := client.Dial(clientOptions)
// ...
}
Workflow determinism checker
See contrib/tools/workflowcheck for a tool to detect non-determinism in Workflow Definitions.
Contributing
We'd love your help in making the Temporal Go SDK great. Please review our contribution guidelines.
License
MIT License, please see LICENSE for details.