SAService Architect Back to designer
SAService ArchitectDocumentation
Endpoint type Temporal / endpoint

Temporal endpoint

A durable Activity or Workflow contract, optionally started by a Temporal Schedule.

When to use

Create this endpoint inside a Temporal connector, then select it from an Input or Sink stream.

Behavior

  • Activity executes an ordinary ServiceLib graph and may perform normal side effects through its stream pipeline.
  • Workflow executes in Temporal deterministic and replay-safe context; side effects must be delegated to Activities.
  • Most endpoints are invoked on demand through a Temporal Sink; for them both schedule and scheduleId should be empty.
  • A scheduled endpoint requires a five-field cron expression and a stable scheduleId.
  • If scheduleId already exists, ServiceLib validates ownership, Workflow type, and Task Queue; the current path does not update the existing cron spec or policies.
  • The generator groups endpoints by connector and Task Queue to configure Worker capacity; conflicting values are rejected before generation.
  • Activity-only timeout, heartbeat, and concurrency fields are hidden in Workflow mode; Workflow Task concurrency is hidden in Activity mode.
  • Disabling the endpoint keeps graph wiring but prevents its external Temporal integration from starting.

General properties

Endpoint identity

PropertyTypeDescription
namestring

Endpoint name unique in the topology.

Required

Temporal properties

Temporal endpoint contract

PropertyTypeDescription
temporalExecutionTypeActivity | Workflow

Selects the execution domain. Activity enters the ordinary ServiceLib runtime graph; Workflow enters the deterministic Temporal Workflow domain.

RequiredDefault: ActivityAllowed: Activity, Workflow
taskQueuestring

Temporal Task Queue used by the generated Worker. Capacity is aggregated by connector and this Task Queue.

RequiredDefault: default
maxConcurrentActivitiesinteger

Maximum Activity Tasks that a Worker for this Task Queue may execute concurrently.

RequiredDefault: 2Minimum: 1Activity only
maxConcurrentWorkflowTasksinteger

Maximum Workflow Tasks that a Worker for this Task Queue may process concurrently. This does not limit the number of open Workflow executions.

RequiredDefault: 4Minimum: 1Workflow only
workflowExecutionTimeoutmilliseconds

Maximum Workflow execution duration; zero uses the Temporal SDK default.

Default: 0
activityStartToCloseTimeoutmilliseconds

Maximum duration of one Activity attempt.

Default: 30000Minimum: 1Activity only
activityHeartbeatTimeoutmilliseconds

Maximum interval between Activity heartbeats; zero disables heartbeat timeout.

Default: 0Activity only
maximumAttemptsinteger

Maximum Activity attempts including the initial run. The current endpoint contract requires this field for both endpoint modes, but it does not configure Workflow retry policy.

RequiredDefault: 1Minimum: 1

Schedule properties

Designer schedule policy

PropertyTypeDescription
enabledboolean

Starts external endpoint admission when true. When false, the endpoint remains in the generated graph but its transport, Worker, or scheduler integration is not started.

Default: true
tracingEnabledboolean

Creates tracing for each event admitted by an Input endpoint. Sink adapters ignore this flag and only propagate tracing already present in the message context.

Default: false
schedulecron expression

Optional UTC schedule expression. Empty keeps the endpoint on-demand only.

scheduleIdstring

Permanent unique Temporal Schedule identity, for example example-automation-workflow-schedule. It is not a cron expression or generated number.

Required when schedule is non-empty.
timezoneUTC

Portable runtimes currently require UTC.

Default: UTC
overlapPolicyAllow | Skip

Behavior when the previous firing is still running.

Default: SkipAllowed: Allow, Skip
missedRunPolicySkip | FireOnce

Behavior after a delayed firing.

Default: FireOnceAllowed: Skip, FireOnce

Function properties

Generated transport handler and code placement

PropertyTypeDescription
functionNamesymbol

Generated endpoint handler name.

functionPackagerelative path

Optional placement below the target-language functions root. Empty uses the root directly; folder/sub-folder is resolved relative to the root selected by publicFunction and functionModule. See Code Generation / Packages and Modules for the language matrix.

Default: empty (functions root)
publicFunctionboolean

Places the handler in shared code.

Default: false
functionDescriptiontext

Generated documentation comment.

functionInitializerGroupstring

Dependency-injection initialization group.

functionModuleModule

Shared module for the handler.

Visible when publicFunction is true.

Configuration example

temporalExecutionType: Activity
taskQueue: orders
maxConcurrentActivities: 2
activityStartToCloseTimeout: 30000
maximumAttempts: 3
schedule: ""
scheduleId: ""