Skip to content

temporalio/sdk-go

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
log
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Temporal Go SDK Build Status Coverage 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 a custom logger

Although the Go SDK does not support most third-party logging solutions natively, our friends at Banzai Cloud built the adapter package logur which makes it possible to use third party loggers with minimal overhead. Here is an example of using logur to support Logrus:

package main
import (
	"github.com/sirupsen/logrus"
	"go.temporal.io/sdk/client"
	logrusadapter "logur.dev/adapter/logrus"
	"logur.dev/logur"
)

func main() {
	// feed this logger into Temporal
	logger := logur.LoggerToKV(logrusadapter.New(logrus.New()))
	clientOptions := client.Options{
		Logger: logger,
	}
	temporalClient, err := client.Dial(clientOptions)
	// ...
}

Most of the popular logging solutions have existing adapters in logur. If you're curious about which adapters are available, here is a helpful link.

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.