Go SDK developer guide
Build Temporal Applications with the Go SDK.
Core Application
Use the essential components of a Temporal Application (Workflows, Activities, and Workers) to build and run a Temporal application.
- How to develop a basic Workflow
- How to develop an Activity Definition in Go
- How to start an Activity Execution
- How to develop a Worker in Go
- How to run a Temporal Cloud Worker
Temporal Client
Connect to a Temporal Service and start a Workflow Execution.
- Connect to development Temporal Service
- Connect to Temporal Cloud
- Start Workflow Execution
- How to start a Workflow Execution
Testing
Set up the testing suite and test Workflows and Activities.
- Test frameworks
- Test setup
- Testing Activities
- Mock and override Activities
- Testing Workflows
- How to Replay a Workflow Execution
Failure detection feature guide
Explore how your application can detect failures using timeouts and automatically attempt to mitigate them with retries.
Workflow message passing
Send messages to and read the state of Workflow Executions.
Interrupt a Workflow feature guide
Interrupt a Workflow Execution with a Cancel or Terminate action.
- Handle a Workflow Cancellation Request: Interrupt a Workflow Execution and its Activities through Workflow cancellation.
- Request Cancellation
Asynchronous Activity completion
Complete Activities asynchronously.
Versioning
Change Workflow Definitions without causing non-deterministic behavior in current long-running Workflows.
Observability
Configure and use the Temporal Observability APIs.
- How to emit metrics
- Tracing and Context Propagation
- How to log from a Workflow
- How to use Visibility APIs
Debugging
Explore various ways to debug your application.
- How to debug in a development environment
- How to debug in a production environment
- How to test Workflow Definitions in Go
Schedules
Run Workflows on a schedule and delay the start of a Workflow.
Data encryption
Use compression, encryption, and other data handling by implementing custom converters and codecs.
- How to use a custom Payload Codec in Go
- How to use custom payload conversion
- How to use a custom Payload Converter in Go
Temporal Nexus
The Temporal Nexus feature guide shows how to use Temporal Nexus to connect durable executions within and across Namespaces using a Nexus Endpoint, a Nexus Service contract, and Nexus Operations.
- Create a Nexus Endpoint to route requests from caller to handler
- Define the Nexus Service API contract
- Develop a Nexus Service and Operation handlers
- Develop a caller Workflow that uses a Nexus Service
- Make Nexus calls across Namespaces with a dev Server
- Make Nexus calls across Namespaces in Temporal Cloud
Durable Timers
Use Timers to make a Workflow Execution pause or "sleep" for seconds, minutes, days, months, or years.
Child Workflows
Explore how to spawn a Child Workflow Execution and handle Child Workflow Events.
Continue-As-New
Continue the Workflow Execution with a new Workflow Execution using the same Workflow ID.
Worker Sessions
Use Worker Session APIs.
- Enable Sessions for a Worker
- Change the maximum concurrent Sessions of a Worker
- Create a Worker Session
Side Effects
Use Side Effects in Workflows.
Manage Namespaces
Create and manage Namespaces.