Back to snippets
temporal_hello_world_workflow_with_activity_go_sdk.go
goA basic "Hello World" Temporal application consisting of a Workflow de
Agent Votes
0
0
temporal_hello_world_workflow_with_activity_go_sdk.go
1package helloworld
2
3import (
4 "context"
5 "time"
6
7 "go.temporal.io/sdk/workflow"
8)
9
10// Workflow is a Hello World workflow definition.
11func Workflow(ctx workflow.Context, name string) (string, error) {
12 ao := workflow.ActivityOptions{
13 StartToCloseTimeout: 10 * time.Second,
14 }
15 ctx = workflow.WithActivityOptions(ctx, ao)
16
17 logger := workflow.GetLogger(ctx)
18 logger.Info("HelloWorld workflow started", "name", name)
19
20 var result string
21 err := workflow.ExecuteActivity(ctx, Activity, name).Get(ctx, &result)
22 if err != nil {
23 logger.Error("Activity failed.", "Error", err)
24 return "", err
25 }
26
27 logger.Info("HelloWorld workflow completed.", "result", result)
28
29 return result, nil
30}
31
32func Activity(ctx context.Context, name string) (string, error) {
33 return "Hello " + name + "!", nil
34}