Class WorkflowServiceGrpc.WorkflowServiceStub

  • Enclosing class:
    WorkflowServiceGrpc

    public static final class WorkflowServiceGrpc.WorkflowServiceStub
    extends io.grpc.stub.AbstractAsyncStub<WorkflowServiceGrpc.WorkflowServiceStub>
     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.
     
    • Method Detail

      • registerNamespace

        public void registerNamespace​(RegisterNamespaceRequest request,
                                      io.grpc.stub.StreamObserver<RegisterNamespaceResponse> responseObserver)
         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.
         
      • describeNamespace

        public void describeNamespace​(DescribeNamespaceRequest request,
                                      io.grpc.stub.StreamObserver<DescribeNamespaceResponse> responseObserver)
         DescribeNamespace returns the information and configuration for a registered namespace.
         
      • listNamespaces

        public void listNamespaces​(ListNamespacesRequest request,
                                   io.grpc.stub.StreamObserver<ListNamespacesResponse> responseObserver)
         ListNamespaces returns the information and configuration for all namespaces.
         
      • updateNamespace

        public void updateNamespace​(UpdateNamespaceRequest request,
                                    io.grpc.stub.StreamObserver<UpdateNamespaceResponse> responseObserver)
         UpdateNamespace is used to update the information and configuration of a registered
         namespace.
         
      • deprecateNamespace

        public void deprecateNamespace​(DeprecateNamespaceRequest request,
                                       io.grpc.stub.StreamObserver<DeprecateNamespaceResponse> responseObserver)
         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 --)
         
      • startWorkflowExecution

        public void startWorkflowExecution​(StartWorkflowExecutionRequest request,
                                           io.grpc.stub.StreamObserver<StartWorkflowExecutionResponse> responseObserver)
         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.
         
      • getWorkflowExecutionHistory

        public void getWorkflowExecutionHistory​(GetWorkflowExecutionHistoryRequest request,
                                                io.grpc.stub.StreamObserver<GetWorkflowExecutionHistoryResponse> responseObserver)
         GetWorkflowExecutionHistory returns the history of specified workflow execution. Fails with
         `NotFound` if the specified workflow execution is unknown to the service.
         
      • getWorkflowExecutionHistoryReverse

        public void getWorkflowExecutionHistoryReverse​(GetWorkflowExecutionHistoryReverseRequest request,
                                                       io.grpc.stub.StreamObserver<GetWorkflowExecutionHistoryReverseResponse> responseObserver)
         GetWorkflowExecutionHistoryReverse returns the history of specified workflow execution in reverse 
         order (starting from last event). Fails with`NotFound` if the specified workflow execution is 
         unknown to the service.
         
      • pollWorkflowTaskQueue

        public void pollWorkflowTaskQueue​(PollWorkflowTaskQueueRequest request,
                                          io.grpc.stub.StreamObserver<PollWorkflowTaskQueueResponse> responseObserver)
         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. --)
         
      • respondWorkflowTaskCompleted

        public void respondWorkflowTaskCompleted​(RespondWorkflowTaskCompletedRequest request,
                                                 io.grpc.stub.StreamObserver<RespondWorkflowTaskCompletedResponse> responseObserver)
         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

        public void respondWorkflowTaskFailed​(RespondWorkflowTaskFailedRequest request,
                                              io.grpc.stub.StreamObserver<RespondWorkflowTaskFailedResponse> responseObserver)
         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. --)
         
      • pollActivityTaskQueue

        public void pollActivityTaskQueue​(PollActivityTaskQueueRequest request,
                                          io.grpc.stub.StreamObserver<PollActivityTaskQueueResponse> responseObserver)
         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. --)
         
      • recordActivityTaskHeartbeat

        public void recordActivityTaskHeartbeat​(RecordActivityTaskHeartbeatRequest request,
                                                io.grpc.stub.StreamObserver<RecordActivityTaskHeartbeatResponse> responseObserver)
         RecordActivityTaskHeartbeat is optionally called by workers while they execute activities.
         If worker fails to heartbeat within the `heartbeat_timeout` interval for the activity task,
         then it will be marked as timed out and 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.
         
      • recordActivityTaskHeartbeatById

        public void recordActivityTaskHeartbeatById​(RecordActivityTaskHeartbeatByIdRequest request,
                                                    io.grpc.stub.StreamObserver<RecordActivityTaskHeartbeatByIdResponse> responseObserver)
         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. --)
         
      • respondActivityTaskCompleted

        public void respondActivityTaskCompleted​(RespondActivityTaskCompletedRequest request,
                                                 io.grpc.stub.StreamObserver<RespondActivityTaskCompletedResponse> responseObserver)
         RespondActivityTaskCompleted is called by workers when they successfully complete an activity
         task.
         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

        public void respondActivityTaskCompletedById​(RespondActivityTaskCompletedByIdRequest request,
                                                     io.grpc.stub.StreamObserver<RespondActivityTaskCompletedByIdResponse> responseObserver)
         See `RecordActivityTaskCompleted`. 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

        public void respondActivityTaskFailed​(RespondActivityTaskFailedRequest request,
                                              io.grpc.stub.StreamObserver<RespondActivityTaskFailedResponse> responseObserver)
         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

        public void respondActivityTaskFailedById​(RespondActivityTaskFailedByIdRequest request,
                                                  io.grpc.stub.StreamObserver<RespondActivityTaskFailedByIdResponse> responseObserver)
         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. --)
         
      • respondActivityTaskCanceled

        public void respondActivityTaskCanceled​(RespondActivityTaskCanceledRequest request,
                                                io.grpc.stub.StreamObserver<RespondActivityTaskCanceledResponse> responseObserver)
         RespondActivityTaskFailed is called by workers when processing an activity task fails.
         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

        public void respondActivityTaskCanceledById​(RespondActivityTaskCanceledByIdRequest request,
                                                    io.grpc.stub.StreamObserver<RespondActivityTaskCanceledByIdResponse> responseObserver)
         See `RecordActivityTaskCanceled`. 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. --)
         
      • requestCancelWorkflowExecution

        public void requestCancelWorkflowExecution​(RequestCancelWorkflowExecutionRequest request,
                                                   io.grpc.stub.StreamObserver<RequestCancelWorkflowExecutionResponse> responseObserver)
         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.
         
      • signalWorkflowExecution

        public void signalWorkflowExecution​(SignalWorkflowExecutionRequest request,
                                            io.grpc.stub.StreamObserver<SignalWorkflowExecutionResponse> responseObserver)
         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.
         
      • signalWithStartWorkflowExecution

        public void signalWithStartWorkflowExecution​(SignalWithStartWorkflowExecutionRequest request,
                                                     io.grpc.stub.StreamObserver<SignalWithStartWorkflowExecutionResponse> responseObserver)
         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. --)
         
      • resetWorkflowExecution

        public void resetWorkflowExecution​(ResetWorkflowExecutionRequest request,
                                           io.grpc.stub.StreamObserver<ResetWorkflowExecutionResponse> responseObserver)
         ResetWorkflowExecution will reset an existing workflow execution to a specified
         `WORKFLOW_TASK_COMPLETED` event (exclusive). It will immediately terminate the current
         execution instance.
         TODO: Does exclusive here mean *just* the completed event, or also WFT started? Otherwise the task is doomed to time out?
         
      • terminateWorkflowExecution

        public void terminateWorkflowExecution​(TerminateWorkflowExecutionRequest request,
                                               io.grpc.stub.StreamObserver<TerminateWorkflowExecutionResponse> responseObserver)
         TerminateWorkflowExecution terminates an existing workflow execution by recording a
         `WORKFLOW_EXECUTION_TERMINATED` event in the history and immediately terminating the
         execution instance.
         
      • deleteWorkflowExecution

        public void deleteWorkflowExecution​(DeleteWorkflowExecutionRequest request,
                                            io.grpc.stub.StreamObserver<DeleteWorkflowExecutionResponse> responseObserver)
         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. --)
         
      • listOpenWorkflowExecutions

        public void listOpenWorkflowExecutions​(ListOpenWorkflowExecutionsRequest request,
                                               io.grpc.stub.StreamObserver<ListOpenWorkflowExecutionsResponse> responseObserver)
         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. --)
         
      • listClosedWorkflowExecutions

        public void listClosedWorkflowExecutions​(ListClosedWorkflowExecutionsRequest request,
                                                 io.grpc.stub.StreamObserver<ListClosedWorkflowExecutionsResponse> responseObserver)
         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. --)
         
      • scanWorkflowExecutions

        public void scanWorkflowExecutions​(ScanWorkflowExecutionsRequest request,
                                           io.grpc.stub.StreamObserver<ScanWorkflowExecutionsResponse> responseObserver)
         ScanWorkflowExecutions is a visibility API to list large amount of workflow executions in a specific namespace without order.
         (-- api-linter: core::0127::http-annotation=disabled
             aip.dev/not-precedent: HTTP users should use ListWorkflowExecutions instead. --)
         
      • getSearchAttributes

        public void getSearchAttributes​(GetSearchAttributesRequest request,
                                        io.grpc.stub.StreamObserver<GetSearchAttributesResponse> responseObserver)
         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). --)
         
      • respondQueryTaskCompleted

        public void respondQueryTaskCompleted​(RespondQueryTaskCompletedRequest request,
                                              io.grpc.stub.StreamObserver<RespondQueryTaskCompletedResponse> responseObserver)
         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. --)
         
      • resetStickyTaskQueue

        public void resetStickyTaskQueue​(ResetStickyTaskQueueRequest request,
                                         io.grpc.stub.StreamObserver<ResetStickyTaskQueueResponse> responseObserver)
         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
         (-- api-linter: core::0127::http-annotation=disabled
             aip.dev/not-precedent: We do not expose worker API to HTTP. --)
         
      • queryWorkflow

        public void queryWorkflow​(QueryWorkflowRequest request,
                                  io.grpc.stub.StreamObserver<QueryWorkflowResponse> responseObserver)
         QueryWorkflow requests a query be executed for a specified workflow execution.
         
      • describeTaskQueue

        public void describeTaskQueue​(DescribeTaskQueueRequest request,
                                      io.grpc.stub.StreamObserver<DescribeTaskQueueResponse> responseObserver)
         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
         
      • listTaskQueuePartitions

        public void listTaskQueuePartitions​(ListTaskQueuePartitionsRequest request,
                                            io.grpc.stub.StreamObserver<ListTaskQueuePartitionsResponse> responseObserver)
         (-- api-linter: core::0127::http-annotation=disabled
             aip.dev/not-precedent: We do not expose this low-level API to HTTP. --)
         
      • describeSchedule

        public void describeSchedule​(DescribeScheduleRequest request,
                                     io.grpc.stub.StreamObserver<DescribeScheduleResponse> responseObserver)
         Returns the schedule description and current state of an existing schedule.
         
      • patchSchedule

        public void patchSchedule​(PatchScheduleRequest request,
                                  io.grpc.stub.StreamObserver<PatchScheduleResponse> responseObserver)
         Makes a specific change to a schedule or triggers an immediate action.
         
      • updateWorkerBuildIdCompatibility

        public void updateWorkerBuildIdCompatibility​(UpdateWorkerBuildIdCompatibilityRequest request,
                                                     io.grpc.stub.StreamObserver<UpdateWorkerBuildIdCompatibilityResponse> responseObserver)
         Deprecated. Use `UpdateWorkerVersioningRules`.
         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. --)
         
      • updateWorkerVersioningRules

        public void updateWorkerVersioningRules​(UpdateWorkerVersioningRulesRequest request,
                                                io.grpc.stub.StreamObserver<UpdateWorkerVersioningRulesResponse> responseObserver)
         Allows updating the Build ID assignment and redirect rules for a given Task Queue.
         WARNING: Worker Versioning is not yet stable and the API and behavior may change incompatibly.
         (-- api-linter: core::0127::http-annotation=disabled
             aip.dev/not-precedent: We do yet expose versioning API to HTTP. --)
         
      • getWorkerVersioningRules

        public void getWorkerVersioningRules​(GetWorkerVersioningRulesRequest request,
                                             io.grpc.stub.StreamObserver<GetWorkerVersioningRulesResponse> responseObserver)
         Fetches the Build ID assignment and redirect rules for a Task Queue.
         WARNING: Worker Versioning is not yet stable and the API and behavior may change incompatibly.
         
      • getWorkerTaskReachability

        public void getWorkerTaskReachability​(GetWorkerTaskReachabilityRequest request,
                                              io.grpc.stub.StreamObserver<GetWorkerTaskReachabilityResponse> responseObserver)
         Deprecated. Use `DescribeTaskQueue`.
         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.
         
      • pollWorkflowExecutionUpdate

        public void pollWorkflowExecutionUpdate​(PollWorkflowExecutionUpdateRequest request,
                                                io.grpc.stub.StreamObserver<PollWorkflowExecutionUpdateResponse> responseObserver)
         Polls a workflow execution for the outcome of a workflow execution 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. --)
         
      • pollNexusTaskQueue

        public void pollNexusTaskQueue​(PollNexusTaskQueueRequest request,
                                       io.grpc.stub.StreamObserver<PollNexusTaskQueueResponse> responseObserver)
         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. --)
         
      • respondNexusTaskCompleted

        public void respondNexusTaskCompleted​(RespondNexusTaskCompletedRequest request,
                                              io.grpc.stub.StreamObserver<RespondNexusTaskCompletedResponse> responseObserver)
         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

        public void respondNexusTaskFailed​(RespondNexusTaskFailedRequest request,
                                           io.grpc.stub.StreamObserver<RespondNexusTaskFailedResponse> responseObserver)
         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. --)