Skip to content

temporalio/sdk-go

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

599e655 · Jan 29, 2024
Nov 30, 2023
Sep 18, 2023
Dec 14, 2023
Jan 23, 2024
Dec 4, 2023
Sep 18, 2023
Jan 29, 2024
Sep 5, 2023
Oct 13, 2023
Jan 17, 2024
Jan 29, 2024
Jan 29, 2024
Aug 9, 2023
Sep 18, 2023
Jan 29, 2024
Nov 28, 2023
Nov 28, 2023
Apr 9, 2020
Sep 1, 2023
Jan 23, 2024
Jan 23, 2024

Repository files navigation

Temporal Go SDK Build Status PkgGoDev

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.