package common import ( "time" "go.temporal.io/sdk/temporal" "go.temporal.io/sdk/workflow" ) // DefaultActivityOptions returns the standard activity options for most activities. func DefaultActivityOptions() workflow.ActivityOptions { return workflow.ActivityOptions{ StartToCloseTimeout: time.Minute, RetryPolicy: &temporal.RetryPolicy{ InitialInterval: time.Second, BackoffCoefficient: 2.0, MaximumInterval: time.Minute, MaximumAttempts: 5, }, } } // ExternalAPIActivityOptions returns activity options suitable for external API calls. func ExternalAPIActivityOptions() workflow.ActivityOptions { return workflow.ActivityOptions{ StartToCloseTimeout: 2 * time.Minute, RetryPolicy: &temporal.RetryPolicy{ InitialInterval: time.Second, BackoffCoefficient: 2.0, MaximumInterval: time.Minute, MaximumAttempts: 5, NonRetryableErrorTypes: []string{ "InvalidInput", "NotFound", "Unauthorized", }, }, } }