Skip to main content

Class: WorkflowService

workflowservice.v1.WorkflowService

WorkflowService API defines how Temporal SDKs and other clients interact with the Temporal server to create and interact with workflows and activities.

Users are expected to call StartWorkflowExecution to create a new workflow execution.

To drive workflows, a worker using a Temporal SDK must exist which regularly polls for workflow and activity tasks from the service. For each workflow task, the sdk must process the (incremental or complete) event history and respond back with any newly generated commands.

For each activity task, the worker is expected to execute the user's code which implements that activity, responding with completion or failure.

Hierarchy

  • Service

    WorkflowService

Properties

countActivityExecutions

countActivityExecutions: CountActivityExecutions

CountActivityExecutions is a visibility API to count activity executions in a specific namespace.


countNexusOperationExecutions

countNexusOperationExecutions: CountNexusOperationExecutions

CountNexusOperationExecutions is a visibility API to count Nexus operations in a specific namespace.


countSchedules

countSchedules: CountSchedules

CountSchedules is a visibility API to count schedules in a specific namespace.


countWorkers

countWorkers: CountWorkers

CountWorkers counts the number of workers in a specific namespace.


countWorkflowExecutions

countWorkflowExecutions: CountWorkflowExecutions

CountWorkflowExecutions is a visibility API to count of workflow executions in a specific namespace.


createSchedule

createSchedule: CreateSchedule

Creates a new schedule.


createWorkerDeployment

createWorkerDeployment: CreateWorkerDeployment

Creates a new Worker Deployment.

Experimental. This API might significantly change or be removed in a future release.


createWorkerDeploymentVersion

createWorkerDeploymentVersion: CreateWorkerDeploymentVersion

Creates a new Worker Deployment Version.

Experimental. This API might significantly change or be removed in a future release.


createWorkflowRule

createWorkflowRule: CreateWorkflowRule

Create a new workflow rule. The rules are used to control the workflow execution. The rule will be applied to all running and new workflows in the namespace. If the rule with such ID already exist this call will fail Note: the rules are part of namespace configuration and will be stored in the namespace config. Namespace config is eventually consistent.


deleteActivityExecution

deleteActivityExecution: DeleteActivityExecution

DeleteActivityExecution asynchronously deletes a specific activity execution (when ActivityExecution.run_id is provided) or the latest activity execution (when ActivityExecution.run_id is not provided). If the activity Execution is running, it will be terminated before deletion.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: Activity deletion not exposed to HTTP, users should use cancel or terminate. --)


deleteNexusOperationExecution

deleteNexusOperationExecution: DeleteNexusOperationExecution

DeleteNexusOperationExecution asynchronously deletes a specific Nexus operation run (when run_id is provided) or the latest run (when run_id is not provided). If the operation is running, it will be terminated before deletion.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: Nexus operation deletion not exposed to HTTP, users should use cancel or terminate. --)


deleteSchedule

deleteSchedule: DeleteSchedule

Deletes a schedule, removing it from the system.


deleteWorkerDeployment

deleteWorkerDeployment: DeleteWorkerDeployment

Deletes records of (an old) Deployment. A deployment can only be deleted if it has no Version in it.


deleteWorkerDeploymentVersion

deleteWorkerDeploymentVersion: DeleteWorkerDeploymentVersion

Used for manual deletion of Versions. User can delete a Version only when all the following conditions are met:

  • It is not the Current or Ramping Version of its Deployment.
  • It has no active pollers (none of the task queues in the Version have pollers)
  • It is not draining (see WorkerDeploymentVersionInfo.drainage_info). This condition can be skipped by passing skip-drainage=true.

deleteWorkflowExecution

deleteWorkflowExecution: DeleteWorkflowExecution

DeleteWorkflowExecution asynchronously deletes a specific Workflow Execution (when WorkflowExecution.run_id is provided) or the latest Workflow Execution (when WorkflowExecution.run_id is not provided). If the Workflow Execution is Running, it will be terminated before deletion.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: Workflow deletion not exposed to HTTP, users should use cancel or terminate. --)


deleteWorkflowRule

deleteWorkflowRule: DeleteWorkflowRule

Delete rule by rule id


deprecateNamespace

deprecateNamespace: DeprecateNamespace

DeprecateNamespace is used to update the state of a registered namespace to DEPRECATED.

Once the namespace is deprecated it cannot be used to start new workflow executions. Existing workflow executions will continue to run on deprecated namespaces. Deprecated.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: Deprecated --)


describeActivityExecution

describeActivityExecution: DescribeActivityExecution

DescribeActivityExecution returns information about an activity execution. It can be used to:

  • Get current activity info without waiting
  • Long-poll for next state change and return new activity info Response can optionally include activity input or outcome (if the activity has completed).

describeBatchOperation

describeBatchOperation: DescribeBatchOperation

DescribeBatchOperation returns the information about a batch operation


describeDeployment

describeDeployment: DescribeDeployment

Describes a worker deployment. Deprecated. Replaced with DescribeWorkerDeploymentVersion.


describeNamespace

describeNamespace: DescribeNamespace

DescribeNamespace returns the information and configuration for a registered namespace.


describeNexusOperationExecution

describeNexusOperationExecution: DescribeNexusOperationExecution

DescribeNexusOperationExecution returns information about a Nexus operation. Supported use cases include:

  • Get current operation info without waiting
  • Long-poll for next state change and return new operation info Response can optionally include operation input or outcome (if the operation has completed).

describeSchedule

describeSchedule: DescribeSchedule

Returns the schedule description and current state of an existing schedule.


describeTaskQueue

describeTaskQueue: DescribeTaskQueue

DescribeTaskQueue returns the following information about the target task queue, broken down by Build ID:

  • List of pollers
  • Workflow Reachability status
  • Backlog info for Workflow and/or Activity tasks

describeWorker

describeWorker: DescribeWorker

DescribeWorker returns information about the specified worker.


describeWorkerDeployment

describeWorkerDeployment: DescribeWorkerDeployment

Describes a Worker Deployment.


describeWorkerDeploymentVersion

describeWorkerDeploymentVersion: DescribeWorkerDeploymentVersion

Describes a worker deployment version.


describeWorkflowExecution

describeWorkflowExecution: DescribeWorkflowExecution

DescribeWorkflowExecution returns information about the specified workflow execution.


describeWorkflowRule

describeWorkflowRule: DescribeWorkflowRule

DescribeWorkflowRule return the rule specification for existing rule id. If there is no rule with such id - NOT FOUND error will be returned.


executeMultiOperation

executeMultiOperation: ExecuteMultiOperation

ExecuteMultiOperation executes multiple operations within a single workflow.

Operations are started atomically, meaning if any operation fails to be started, none are, and the request fails. Upon start, the API returns only when all operations have a response.

Upon failure, it returns MultiOperationExecutionFailure where the status code equals the status code of the first operation that failed to be started.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: To be exposed over HTTP in the future. --)


fetchWorkerConfig

fetchWorkerConfig: FetchWorkerConfig

FetchWorkerConfig returns the worker configuration for a specific worker.


getClusterInfo

getClusterInfo: GetClusterInfo

GetClusterInfo returns information about temporal cluster


getCurrentDeployment

getCurrentDeployment: GetCurrentDeployment

Returns the current deployment (and its info) for a given deployment series. Deprecated. Replaced by current_version returned by DescribeWorkerDeployment.


getDeploymentReachability

getDeploymentReachability: GetDeploymentReachability

Returns the reachability level of a worker deployment to help users decide when it is time to decommission a deployment. Reachability level is calculated based on the deployment's status and existing workflows that depend on the given deployment for their execution. Calculating reachability is relatively expensive. Therefore, server might return a recently cached value. In such a case, the last_update_time will inform you about the actual reachability calculation time. Deprecated. Replaced with DrainageInfo returned by DescribeWorkerDeploymentVersion.


getSearchAttributes

getSearchAttributes: GetSearchAttributes

GetSearchAttributes is a visibility API to get all legal keys that could be used in list APIs

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose this search attribute API to HTTP (but may expose on OperatorService). --)


getSystemInfo

getSystemInfo: GetSystemInfo

GetSystemInfo returns information about the system.


getWorkerBuildIdCompatibility

getWorkerBuildIdCompatibility: GetWorkerBuildIdCompatibility

Deprecated. Use GetWorkerVersioningRules. Will be removed in server version v1.32.0. Fetches the worker build id versioning sets for a task queue.


getWorkerTaskReachability

getWorkerTaskReachability: GetWorkerTaskReachability

Deprecated. Use DescribeTaskQueue. Will be removed in server version v1.32.0.

Fetches task reachability to determine whether a worker may be retired. The request may specify task queues to query for or let the server fetch all task queues mapped to the given build IDs.

When requesting a large number of task queues or all task queues associated with the given build ids in a namespace, all task queues will be listed in the response but some of them may not contain reachability information due to a server enforced limit. When reaching the limit, task queues that reachability information could not be retrieved for will be marked with a single TASK_REACHABILITY_UNSPECIFIED entry. The caller may issue another call to get the reachability for those task queues.

Open source users can adjust this limit by setting the server's dynamic config value for limit.reachabilityTaskQueueScan with the caveat that this call can strain the visibility store.


getWorkerVersioningRules

getWorkerVersioningRules: GetWorkerVersioningRules

Fetches the Build ID assignment and redirect rules for a Task Queue. Will be removed in server version v1.32.0.


getWorkflowExecutionHistory

getWorkflowExecutionHistory: GetWorkflowExecutionHistory

GetWorkflowExecutionHistory returns the history of specified workflow execution. Fails with NotFound if the specified workflow execution is unknown to the service.


getWorkflowExecutionHistoryReverse

getWorkflowExecutionHistoryReverse: GetWorkflowExecutionHistoryReverse

GetWorkflowExecutionHistoryReverse returns the history of specified workflow execution in reverse order (starting from last event). Fails withNotFound if the specified workflow execution is unknown to the service.


listActivityExecutions

listActivityExecutions: ListActivityExecutions

ListActivityExecutions is a visibility API to list activity executions in a specific namespace.


listArchivedWorkflowExecutions

listArchivedWorkflowExecutions: ListArchivedWorkflowExecutions

ListArchivedWorkflowExecutions is a visibility API to list archived workflow executions in a specific namespace.


listBatchOperations

listBatchOperations: ListBatchOperations

ListBatchOperations returns a list of batch operations


listClosedWorkflowExecutions

listClosedWorkflowExecutions: ListClosedWorkflowExecutions

ListClosedWorkflowExecutions is a visibility API to list the closed executions in a specific namespace.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: HTTP users should use ListWorkflowExecutions instead. --)


listDeployments

listDeployments: ListDeployments

Lists worker deployments in the namespace. Optionally can filter based on deployment series name. Deprecated. Replaced with ListWorkerDeployments.


listNamespaces

listNamespaces: ListNamespaces

ListNamespaces returns the information and configuration for all namespaces.


listNexusOperationExecutions

listNexusOperationExecutions: ListNexusOperationExecutions

ListNexusOperationExecutions is a visibility API to list Nexus operations in a specific namespace.


listOpenWorkflowExecutions

listOpenWorkflowExecutions: ListOpenWorkflowExecutions

ListOpenWorkflowExecutions is a visibility API to list the open executions in a specific namespace.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: HTTP users should use ListWorkflowExecutions instead. --)


listScheduleMatchingTimes

listScheduleMatchingTimes: ListScheduleMatchingTimes

Lists matching times within a range.


listSchedules

listSchedules: ListSchedules

List all schedules in a namespace.


listTaskQueuePartitions

listTaskQueuePartitions: ListTaskQueuePartitions

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose this low-level API to HTTP. --)


listWorkerDeployments

listWorkerDeployments: ListWorkerDeployments

Lists all Worker Deployments that are tracked in the Namespace.


listWorkers

listWorkers: ListWorkers

ListWorkers is a visibility API to list worker status information in a specific namespace.


listWorkflowExecutions

listWorkflowExecutions: ListWorkflowExecutions

ListWorkflowExecutions is a visibility API to list workflow executions in a specific namespace.


listWorkflowRules

listWorkflowRules: ListWorkflowRules

Return all namespace workflow rules


patchSchedule

patchSchedule: PatchSchedule

Makes a specific change to a schedule or triggers an immediate action.


pauseActivity

pauseActivity: PauseActivity

PauseActivity pauses the execution of an activity specified by its ID or type. If there are multiple pending activities of the provided type - all of them will be paused

Pausing an activity means:

  • If the activity is currently waiting for a retry or is running and subsequently fails, it will not be rescheduled until it is unpaused.
  • If the activity is already paused, calling this method will have no effect.
  • If the activity is running and finishes successfully, the activity will be completed.
  • If the activity is running and finishes with failure:
  • if there is no retry left - the activity will be completed.
  • if there are more retries left - the activity will be paused. For long-running activities:
  • activities in paused state will send a cancellation with "activity_paused" set to 'true' in response to 'RecordActivityTaskHeartbeat'.
  • The activity should respond to the cancellation accordingly.

Returns a NotFound error if there is no pending activity with the provided ID or type This API will be deprecated soon and replaced with a newer PauseActivityExecution that is better named and structured to work well for standalone activities.


pauseActivityExecution

pauseActivityExecution: PauseActivityExecution

PauseActivityExecution pauses the execution of an activity specified by its ID. This API can be used to target a workflow activity or a standalone activity

Pausing an activity means:

  • If the activity is currently waiting for a retry or is running and subsequently fails, it will not be rescheduled until it is unpaused.
  • If the activity is already paused, calling this method will have no effect.
  • If the activity is running and finishes successfully, the activity will be completed.
  • If the activity is running and finishes with failure:
  • if there is no retry left - the activity will be completed.
  • if there are more retries left - the activity will be paused. For long-running activities:
  • activities in paused state will send a cancellation with "activity_paused" set to 'true' in response to 'RecordActivityTaskHeartbeat'.

Returns a NotFound error if there is no pending activity with the provided ID


pauseWorkflowExecution

pauseWorkflowExecution: PauseWorkflowExecution

Note: This is an experimental API and the behavior may change in a future release. PauseWorkflowExecution pauses the workflow execution specified in the request. Pausing a workflow execution results in

  • The workflow execution status changes to PAUSED and a new WORKFLOW_EXECUTION_PAUSED event is added to the history
  • No new workflow tasks or activity tasks are dispatched.
  • Any workflow task currently executing on the worker will be allowed to complete.
  • Any activity task currently executing will be paused.
  • All server-side events will continue to be processed by the server.
  • Queries & Updates on a paused workflow will be rejected.

pollActivityExecution

pollActivityExecution: PollActivityExecution

PollActivityExecution long-polls for an activity execution to complete and returns the outcome (result or failure).


pollActivityTaskQueue

pollActivityTaskQueue: PollActivityTaskQueue

PollActivityTaskQueue is called by workers to process activity tasks from a specific task queue.

The worker is expected to call one of the RespondActivityTaskXXX methods when it is done processing the task.

An activity task is dispatched whenever a SCHEDULE_ACTIVITY_TASK command is produced during workflow execution. An in memory ACTIVITY_TASK_STARTED event is written to mutable state before the task is dispatched to the worker. The started event, and the final event (ACTIVITY_TASK_COMPLETED / ACTIVITY_TASK_FAILED / ACTIVITY_TASK_TIMED_OUT) will both be written permanently to Workflow execution history when Activity is finished. This is done to avoid writing many events in the case of a failure/retry loop.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


pollNexusOperationExecution

pollNexusOperationExecution: PollNexusOperationExecution

PollNexusOperationExecution long-polls for a Nexus operation for a given wait stage to complete and returns the outcome (result or failure).


pollNexusTaskQueue

pollNexusTaskQueue: PollNexusTaskQueue

PollNexusTaskQueue is a long poll call used by workers to receive Nexus tasks. (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


pollWorkflowExecutionTimeSkipping

pollWorkflowExecutionTimeSkipping: PollWorkflowExecutionTimeSkipping

Calls PollWorkflowExecutionTimeSkipping.


pollWorkflowExecutionUpdate

pollWorkflowExecutionUpdate: PollWorkflowExecutionUpdate

Polls a Workflow Execution for the outcome of a Workflow Update previously issued through the UpdateWorkflowExecution RPC. The effective timeout on this call will be shorter of the the caller-supplied gRPC timeout and the server's configured long-poll timeout.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We don't expose update polling API to HTTP in favor of a potential future non-blocking form. --)


pollWorkflowTaskQueue

pollWorkflowTaskQueue: PollWorkflowTaskQueue

PollWorkflowTaskQueue is called by workers to make progress on workflows.

A WorkflowTask is dispatched to callers for active workflow executions with pending workflow tasks. The worker is expected to call RespondWorkflowTaskCompleted when it is done processing the task. The service will create a WorkflowTaskStarted event in the history for this task before handing it to the worker.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


queryWorkflow

queryWorkflow: QueryWorkflow

QueryWorkflow requests a query be executed for a specified workflow execution.


recordActivityTaskHeartbeat

recordActivityTaskHeartbeat: RecordActivityTaskHeartbeat

RecordActivityTaskHeartbeat is optionally called by workers while they execute activities.

If a worker fails to heartbeat within the heartbeat_timeout interval for the activity task, then the current attempt times out. Depending on RetryPolicy, this may trigger a retry or time out the activity.

For workflow activities, an ACTIVITY_TASK_TIMED_OUT event will be written to the workflow history. Calling RecordActivityTaskHeartbeat will fail with NotFound in such situations, in that event, the SDK should request cancellation of the activity.

The request may contain response details which will be persisted by the server and may be used by the activity to checkpoint progress. The cancel_requested field in the response indicates whether cancellation has been requested for the activity.


recordActivityTaskHeartbeatById

recordActivityTaskHeartbeatById: RecordActivityTaskHeartbeatById

See RecordActivityTaskHeartbeat. This version allows clients to record heartbeats by namespace/workflow id/activity id instead of task token.

(-- api-linter: core::0136::prepositions=disabled aip.dev/not-precedent: "By" is used to indicate request type. --)


recordWorkerHeartbeat

recordWorkerHeartbeat: RecordWorkerHeartbeat

WorkerHeartbeat receive heartbeat request from the worker.


registerNamespace

registerNamespace: RegisterNamespace

RegisterNamespace creates a new namespace which can be used as a container for all resources.

A Namespace is a top level entity within Temporal, and is used as a container for resources like workflow executions, task queues, etc. A Namespace acts as a sandbox and provides isolation for all resources within the namespace. All resources belongs to exactly one namespace.


requestCancelActivityExecution

requestCancelActivityExecution: RequestCancelActivityExecution

RequestCancelActivityExecution requests cancellation of an activity execution.

Cancellation is cooperative: this call records the request, but the activity must detect and acknowledge it for the activity to reach CANCELED status. The cancellation signal is delivered via cancel_requested in the heartbeat response; SDKs surface this via language-idiomatic mechanisms (context cancellation, exceptions, abort signals).


requestCancelNexusOperationExecution

requestCancelNexusOperationExecution: RequestCancelNexusOperationExecution

RequestCancelNexusOperationExecution requests cancellation of a Nexus operation.

Requesting to cancel an operation does not automatically transition the operation to canceled status. The operation will only transition to canceled status if it supports cancellation and the handler processes the cancellation request.


requestCancelWorkflowExecution

requestCancelWorkflowExecution: RequestCancelWorkflowExecution

RequestCancelWorkflowExecution is called by workers when they want to request cancellation of a workflow execution.

This results in a new WORKFLOW_EXECUTION_CANCEL_REQUESTED event being written to the workflow history and a new workflow task created for the workflow. It returns success if the requested workflow is already closed. It fails with 'NotFound' if the requested workflow doesn't exist.


requestDelimited

requestDelimited: boolean

Whether requests are length-delimited.

Inherited from

$protobuf.rpc.Service.requestDelimited


resetActivity

resetActivity: ResetActivity

ResetActivity resets the execution of an activity specified by its ID or type. If there are multiple pending activities of the provided type - all of them will be reset.

Resetting an activity means:

  • number of attempts will be reset to 0.
  • activity timeouts will be reset.
  • if the activity is waiting for retry, and it is not paused or 'keep_paused' is not provided: it will be scheduled immediately (* see 'jitter' flag),

Flags:

'jitter': the activity will be scheduled at a random time within the jitter duration. If the activity currently paused it will be unpaused, unless 'keep_paused' flag is provided. 'reset_heartbeats': the activity heartbeat timer and heartbeats will be reset. 'keep_paused': if the activity is paused, it will remain paused.

Returns a NotFound error if there is no pending activity with the provided ID or type. This API will be deprecated soon and replaced with a newer ResetActivityExecution that is better named and structured to work well for standalone activities.


resetActivityExecution

resetActivityExecution: ResetActivityExecution

ResetActivityExecution resets the execution of an activity specified by its ID. This API can be used to target a workflow activity or a standalone activity.

Resetting an activity means:

  • number of attempts will be reset to 0.
  • activity timeouts will be reset.
  • if the activity is waiting for retry, and it is not paused or 'keep_paused' is not provided: it will be scheduled immediately (* see 'jitter' flag)

Returns a NotFound error if there is no pending activity with the provided ID or type.


resetStickyTaskQueue

resetStickyTaskQueue: ResetStickyTaskQueue

ResetStickyTaskQueue resets the sticky task queue related information in the mutable state of a given workflow. This is prudent for workers to perform if a workflow has been paged out of their cache.

Things cleared are:

  1. StickyTaskQueue
  2. StickyScheduleToStartTimeout

When possible, ShutdownWorker should be preferred over ResetStickyTaskQueue (particularly when a worker is shutting down or cycling).

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


resetWorkflowExecution

resetWorkflowExecution: ResetWorkflowExecution

ResetWorkflowExecution will reset an existing workflow execution to a specified WORKFLOW_TASK_COMPLETED event (exclusive). It will immediately terminate the current execution instance. "Exclusive" means the identified completed event itself is not replayed in the reset history; the preceding WORKFLOW_TASK_STARTED event remains and will be marked as failed immediately, and a new workflow task will be scheduled to retry it.


respondActivityTaskCanceled

respondActivityTaskCanceled: RespondActivityTaskCanceled

RespondActivityTaskFailed is called by workers when processing an activity task fails.

For workflow activities, this results in a new ACTIVITY_TASK_CANCELED event being written to the workflow history and a new workflow task created for the workflow. Fails with NotFound if the task token is no longer valid due to activity timeout, already being completed, or never having existed.


respondActivityTaskCanceledById

respondActivityTaskCanceledById: RespondActivityTaskCanceledById

See RespondActivityTaskCanceled. This version allows clients to record failures by namespace/workflow id/activity id instead of task token.

(-- api-linter: core::0136::prepositions=disabled aip.dev/not-precedent: "By" is used to indicate request type. --)


respondActivityTaskCompleted

respondActivityTaskCompleted: RespondActivityTaskCompleted

RespondActivityTaskCompleted is called by workers when they successfully complete an activity task.

For workflow activities, this results in a new ACTIVITY_TASK_COMPLETED event being written to the workflow history and a new workflow task created for the workflow. Fails with NotFound if the task token is no longer valid due to activity timeout, already being completed, or never having existed.


respondActivityTaskCompletedById

respondActivityTaskCompletedById: RespondActivityTaskCompletedById

See RespondActivityTaskCompleted. This version allows clients to record completions by namespace/workflow id/activity id instead of task token.

(-- api-linter: core::0136::prepositions=disabled aip.dev/not-precedent: "By" is used to indicate request type. --)


respondActivityTaskFailed

respondActivityTaskFailed: RespondActivityTaskFailed

RespondActivityTaskFailed is called by workers when processing an activity task fails.

This results in a new ACTIVITY_TASK_FAILED event being written to the workflow history and a new workflow task created for the workflow. Fails with NotFound if the task token is no longer valid due to activity timeout, already being completed, or never having existed.


respondActivityTaskFailedById

respondActivityTaskFailedById: RespondActivityTaskFailedById

See RecordActivityTaskFailed. This version allows clients to record failures by namespace/workflow id/activity id instead of task token.

(-- api-linter: core::0136::prepositions=disabled aip.dev/not-precedent: "By" is used to indicate request type. --)


respondNexusTaskCompleted

respondNexusTaskCompleted: RespondNexusTaskCompleted

RespondNexusTaskCompleted is called by workers to respond to Nexus tasks received via PollNexusTaskQueue. (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


respondNexusTaskFailed

respondNexusTaskFailed: RespondNexusTaskFailed

RespondNexusTaskFailed is called by workers to fail Nexus tasks received via PollNexusTaskQueue. (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


respondQueryTaskCompleted

respondQueryTaskCompleted: RespondQueryTaskCompleted

RespondQueryTaskCompleted is called by workers to complete queries which were delivered on the query (not queries) field of a PollWorkflowTaskQueueResponse.

Completing the query will unblock the corresponding client call to QueryWorkflow and return the query result a response.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


respondWorkflowTaskCompleted

respondWorkflowTaskCompleted: RespondWorkflowTaskCompleted

RespondWorkflowTaskCompleted is called by workers to successfully complete workflow tasks they received from PollWorkflowTaskQueue.

Completing a WorkflowTask will write a WORKFLOW_TASK_COMPLETED event to the workflow's history, along with events corresponding to whatever commands the SDK generated while executing the task (ex timer started, activity task scheduled, etc).

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


respondWorkflowTaskFailed

respondWorkflowTaskFailed: RespondWorkflowTaskFailed

RespondWorkflowTaskFailed is called by workers to indicate the processing of a workflow task failed.

This results in a WORKFLOW_TASK_FAILED event written to the history, and a new workflow task will be scheduled. This API can be used to report unhandled failures resulting from applying the workflow task.

Temporal will only append first WorkflowTaskFailed event to the history of workflow execution for consecutive failures.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


responseDelimited

responseDelimited: boolean

Whether responses are length-delimited.

Inherited from

$protobuf.rpc.Service.responseDelimited


rpcImpl

rpcImpl: null | RPCImpl

RPC implementation. Becomes null once the service is ended.

Inherited from

$protobuf.rpc.Service.rpcImpl


scanWorkflowExecutions

scanWorkflowExecutions: ScanWorkflowExecutions

ScanWorkflowExecutions was a visibility API to list large amount of workflow executions in a specific namespace without order. It has since been deprecated in favor of ListWorkflowExecutions and rewritten to use ListWorkflowExecutions internally.

Deprecated: Replaced with ListWorkflowExecutions. (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: HTTP users should use ListWorkflowExecutions instead. --)


setCurrentDeployment

setCurrentDeployment: SetCurrentDeployment

Sets a deployment as the current deployment for its deployment series. Can optionally update the metadata of the deployment as well. Deprecated. Replaced by SetWorkerDeploymentCurrentVersion.


setWorkerDeploymentCurrentVersion

setWorkerDeploymentCurrentVersion: SetWorkerDeploymentCurrentVersion

Set/unset the Current Version of a Worker Deployment. Automatically unsets the Ramping Version if it is the Version being set as Current.


setWorkerDeploymentManager

setWorkerDeploymentManager: SetWorkerDeploymentManager

Set/unset the ManagerIdentity of a Worker Deployment. Experimental. This API might significantly change or be removed in a future release.


setWorkerDeploymentRampingVersion

setWorkerDeploymentRampingVersion: SetWorkerDeploymentRampingVersion

Set/unset the Ramping Version of a Worker Deployment and its ramp percentage. Can be used for gradual ramp to unversioned workers too.


shutdownWorker

shutdownWorker: ShutdownWorker

ShutdownWorker is used to indicate that the given sticky task queue is no longer being polled by its worker. Following the completion of ShutdownWorker, newly-added workflow tasks will instead be placed in the normal task queue, eligible for any worker to pick up.

ShutdownWorker should be called by workers while shutting down, after they've shut down their pollers. If another sticky poll request is issued, the sticky task queue will be revived.

As of Temporal Server v1.25.0, ShutdownWorker hasn't yet been implemented.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do not expose worker API to HTTP. --)


signalWithStartWorkflowExecution

signalWithStartWorkflowExecution: SignalWithStartWorkflowExecution

SignalWithStartWorkflowExecution is used to ensure a signal is sent to a workflow, even if it isn't yet started.

If the workflow is running, a WORKFLOW_EXECUTION_SIGNALED event is recorded in the history and a workflow task is generated.

If the workflow is not running or not found, then the workflow is created with WORKFLOW_EXECUTION_STARTED and WORKFLOW_EXECUTION_SIGNALED events in its history, and a workflow task is generated.

(-- api-linter: core::0136::prepositions=disabled aip.dev/not-precedent: "With" is used to indicate combined operation. --)


signalWorkflowExecution

signalWorkflowExecution: SignalWorkflowExecution

SignalWorkflowExecution is used to send a signal to a running workflow execution.

This results in a WORKFLOW_EXECUTION_SIGNALED event recorded in the history and a workflow task being created for the execution.


startActivityExecution

startActivityExecution: StartActivityExecution

StartActivityExecution starts a new activity execution.

Returns an ActivityExecutionAlreadyStarted error if an instance already exists with same activity ID in this namespace unless permitted by the specified ID conflict policy.


startBatchOperation

startBatchOperation: StartBatchOperation

StartBatchOperation starts a new batch operation


startNexusOperationExecution

startNexusOperationExecution: StartNexusOperationExecution

StartNexusOperationExecution starts a new Nexus operation.

Returns a NexusOperationExecutionAlreadyStarted error if an instance already exists with same operation ID in this namespace unless permitted by the specified ID conflict policy.


startWorkflowExecution

startWorkflowExecution: StartWorkflowExecution

StartWorkflowExecution starts a new workflow execution.

It will create the execution with a WORKFLOW_EXECUTION_STARTED event in its history and also schedule the first workflow task. Returns WorkflowExecutionAlreadyStarted, if an instance already exists with same workflow id.


stopBatchOperation

stopBatchOperation: StopBatchOperation

StopBatchOperation stops a batch operation


terminateActivityExecution

terminateActivityExecution: TerminateActivityExecution

TerminateActivityExecution terminates an existing activity execution immediately.

Termination does not reach the worker and the activity code cannot react to it. A terminated activity may have a running attempt.


terminateNexusOperationExecution

terminateNexusOperationExecution: TerminateNexusOperationExecution

TerminateNexusOperationExecution terminates an existing Nexus operation immediately.

Termination happens immediately and the operation handler cannot react to it. A terminated operation will have its outcome set to a failure with a termination reason.


terminateWorkflowExecution

terminateWorkflowExecution: TerminateWorkflowExecution

TerminateWorkflowExecution terminates an existing workflow execution by recording a WORKFLOW_EXECUTION_TERMINATED event in the history and immediately terminating the execution instance.


triggerWorkflowRule

triggerWorkflowRule: TriggerWorkflowRule

TriggerWorkflowRule allows to:

  • trigger existing rule for a specific workflow execution;
  • trigger rule for a specific workflow execution without creating a rule; This is useful for one-off operations.

unpauseActivity

unpauseActivity: UnpauseActivity

UnpauseActivity unpauses the execution of an activity specified by its ID or type. If there are multiple pending activities of the provided type - all of them will be unpaused.

If activity is not paused, this call will have no effect. If the activity was paused while waiting for retry, it will be scheduled immediately (* see 'jitter' flag). Once the activity is unpaused, all timeout timers will be regenerated.

Flags: 'jitter': the activity will be scheduled at a random time within the jitter duration. 'reset_attempts': the number of attempts will be reset. 'reset_heartbeat': the activity heartbeat timer and heartbeats will be reset.

Returns a NotFound error if there is no pending activity with the provided ID or type This API will be deprecated soon and replaced with a newer UnpauseActivityExecution that is better named and structured to work well for standalone activities.


unpauseActivityExecution

unpauseActivityExecution: UnpauseActivityExecution

UnpauseActivityExecution unpauses the execution of an activity specified by its ID. This API can be used to target a workflow activity or a standalone activity.

If activity is not paused, this call will have no effect. If the activity was paused while waiting for retry, it will be scheduled immediately (* see 'jitter' flag). Once the activity is unpaused, all timeout timers will be regenerated.

Returns a NotFound error if there is no pending activity with the provided ID


unpauseWorkflowExecution

unpauseWorkflowExecution: UnpauseWorkflowExecution

Note: This is an experimental API and the behavior may change in a future release. UnpauseWorkflowExecution unpauses a previously paused workflow execution specified in the request. Unpausing a workflow execution results in

  • The workflow execution status changes to RUNNING and a new WORKFLOW_EXECUTION_UNPAUSED event is added to the history
  • Workflow tasks and activity tasks are resumed.

updateActivityExecutionOptions

updateActivityExecutionOptions: UpdateActivityExecutionOptions

UpdateActivityExecutionOptions is called by the client to update the options of an activity by its ID. This API can be used to target a workflow activity or a standalone activity.


updateActivityOptions

updateActivityOptions: UpdateActivityOptions

UpdateActivityOptions is called by the client to update the options of an activity by its ID or type. If there are multiple pending activities of the provided type - all of them will be updated. This API will be deprecated soon and replaced with a newer UpdateActivityExecutionOptions that is better named and structured to work well for standalone activities.


updateNamespace

updateNamespace: UpdateNamespace

UpdateNamespace is used to update the information and configuration of a registered namespace.


updateSchedule

updateSchedule: UpdateSchedule

Changes the configuration or state of an existing schedule.


updateTaskQueueConfig

updateTaskQueueConfig: UpdateTaskQueueConfig

Updates task queue configuration. For the overall queue rate limit: the rate limit set by this api overrides the worker-set rate limit, which uncouples the rate limit from the worker lifecycle. If the overall queue rate limit is unset, the worker-set rate limit takes effect.


updateWorkerBuildIdCompatibility

updateWorkerBuildIdCompatibility: UpdateWorkerBuildIdCompatibility

Deprecated. Use UpdateWorkerVersioningRules. Will be removed in server version v1.32.0.

Allows users to specify sets of worker build id versions on a per task queue basis. Versions are ordered, and may be either compatible with some extant version, or a new incompatible version, forming sets of ids which are incompatible with each other, but whose contained members are compatible with one another.

A single build id may be mapped to multiple task queues using this API for cases where a single process hosts multiple workers.

To query which workers can be retired, use the GetWorkerTaskReachability API.

NOTE: The number of task queues mapped to a single build id is limited by the limit.taskQueuesPerBuildId (default is 20), if this limit is exceeded this API will error with a FailedPrecondition.

(-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do yet expose versioning API to HTTP. --)


updateWorkerConfig

updateWorkerConfig: UpdateWorkerConfig

UpdateWorkerConfig updates the worker configuration of one or more workers. Can be used to partially update the worker configuration. Can be used to update the configuration of multiple workers.


updateWorkerDeploymentVersionComputeConfig

updateWorkerDeploymentVersionComputeConfig: UpdateWorkerDeploymentVersionComputeConfig

Updates the compute config attached to a Worker Deployment Version. Experimental. This API might significantly change or be removed in a future release.


updateWorkerDeploymentVersionMetadata

updateWorkerDeploymentVersionMetadata: UpdateWorkerDeploymentVersionMetadata

Updates the user-given metadata attached to a Worker Deployment Version.


updateWorkerVersioningRules

updateWorkerVersioningRules: UpdateWorkerVersioningRules

Use this API to manage Worker Versioning Rules for a given Task Queue. There are two types of rules: Build ID Assignment rules and Compatible Build ID Redirect rules.

Assignment rules determine how to assign new executions to a Build IDs. Their primary use case is to specify the latest Build ID but they have powerful features for gradual rollout of a new Build ID.

Once a workflow execution is assigned to a Build ID and it completes its first Workflow Task, the workflow stays on the assigned Build ID regardless of changes in assignment rules. This eliminates the need for compatibility between versions when you only care about using the new version for new workflows and let existing workflows finish in their own version.

Activities, Child Workflows and Continue-as-New executions have the option to inherit the Build ID of their parent/previous workflow or use the latest assignment rules to independently select a Build ID.

Redirect rules should only be used when you want to move workflows and activities assigned to one Build ID (source) to another compatible Build ID (target). You are responsible to make sure the target Build ID of a redirect rule is able to process event histories made by the source Build ID by using Patching or other means.

Will be removed in server version v1.32.0. (-- api-linter: core::0127::http-annotation=disabled aip.dev/not-precedent: We do yet expose versioning API to HTTP. --)


updateWorkflowExecution

updateWorkflowExecution: UpdateWorkflowExecution

Invokes the specified Update function on user Workflow code.


updateWorkflowExecutionOptions

updateWorkflowExecutionOptions: UpdateWorkflowExecutionOptions

UpdateWorkflowExecutionOptions partially updates the WorkflowExecutionOptions of an existing workflow execution.


validateWorkerDeploymentVersionComputeConfig

validateWorkerDeploymentVersionComputeConfig: ValidateWorkerDeploymentVersionComputeConfig

Validates the compute config without attaching it to a Worker Deployment Version. Experimental. This API might significantly change or be removed in a future release.

Methods

emit

emit(evt, ...args): this

Emits an event by calling its listeners with the specified arguments.

Parameters

NameTypeDescription
evtstringEvent name
...argsany[]Arguments

Returns

this

this

Inherited from

$protobuf.rpc.Service.emit


end

end(endedByRPC?): Service

Ends this service and emits the end event.

Parameters

NameTypeDescription
endedByRPC?booleanWhether the service has been ended by the RPC implementation.

Returns

Service

this

Inherited from

$protobuf.rpc.Service.end


off

off(evt?, fn?): this

Removes an event listener or any matching listeners if arguments are omitted.

Parameters

NameTypeDescription
evt?stringEvent name. Removes all listeners if omitted.
fn?EventEmitterListenerListener to remove. Removes all listeners of evt if omitted.

Returns

this

this

Inherited from

$protobuf.rpc.Service.off


on

on(evt, fn, ctx?): this

Registers an event listener.

Parameters

NameTypeDescription
evtstringEvent name
fnEventEmitterListenerListener
ctx?anyListener context

Returns

this

this

Inherited from

$protobuf.rpc.Service.on


rpcCall

rpcCall<TReq, TRes>(method, requestCtor, responseCtor, request, callback): void

Calls a service method through rpcImpl.

Type parameters

NameType
TReqextends Message<TReq>
TResextends Message<TRes>

Parameters

NameTypeDescription
methodMethod | ServiceMethod<TReq, TRes>Reflected or static method
requestCtorConstructor<TReq>Request constructor
responseCtorConstructor<TRes>Response constructor
requestTReq | Properties<TReq>Request message or plain object
callbackServiceMethodCallback<TRes>Service callback

Returns

void

Inherited from

$protobuf.rpc.Service.rpcCall


create

create(rpcImpl, requestDelimited?, responseDelimited?): WorkflowService

Creates new WorkflowService service using the specified rpc implementation.

Parameters

NameTypeDescription
rpcImplRPCImplRPC implementation
requestDelimited?booleanWhether requests are length-delimited
responseDelimited?booleanWhether responses are length-delimited

Returns

WorkflowService

RPC service. Useful where requests and/or responses are streamed.