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.
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.
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)
// ...
}
See contrib/tools/workflowcheck for a tool to detect non-determinism in Workflow Definitions.
We'd love your help in making the Temporal Go SDK great. Please review our contribution guidelines.
MIT License, please see LICENSE for details.