Skip to content

add GetWorkflowExecutionResult as a system nexus endpoint#781

Open
spkane31 wants to merge 15 commits into
mainfrom
spk/wait-for-external
Open

add GetWorkflowExecutionResult as a system nexus endpoint#781
spkane31 wants to merge 15 commits into
mainfrom
spk/wait-for-external

Conversation

@spkane31

@spkane31 spkane31 commented May 15, 2026

Copy link
Copy Markdown
Contributor

What changed?
Add the GetWorkflowExecutionResult RPC and expose it as a system nexus operation.

Why?
New API for workflows

Breaking changes
No breaking changes

Server PR
TBA

@spkane31 spkane31 requested review from a team May 15, 2026 21:41
@spkane31 spkane31 changed the title use oneof and add Links add WaitForExternal as a system nexus endpoint May 19, 2026
Comment thread temporal/nexus/api/workflowservice/v1/request_response.proto Outdated
@spkane31 spkane31 changed the title add WaitForExternal as a system nexus endpoint add GetWorkflowExecutionResult as a system nexus endpoint May 22, 2026
Comment on lines +38 to +45
option (google.api.http) = {
post: "/namespaces/{namespace}/workflows/{execution.workflow_id}/wait-for-external-workflow"
body: "*"
additional_bindings {
post: "/api/v1/namespaces/{namespace}/workflows/{execution.workflow_id}/wait-for-external-workflow"
body: "*"
}
};

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need HTTP for any of the system nexus APIs.

Comment on lines +46 to +50
option (temporal.api.protometa.v1.request_header) = {
header: "temporal-resource-id"
value : "workflow:{execution.workflow_id}"
};
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to understand how the SDK will use this later when we support direct calls for the system nexus endpoint. For now it doesn't give us any value to add this.

Comment thread api-linter.yaml

- included_paths:
- "**/workflowservice/v1/service.proto"
- "**/workflownexusservice/v1/service.proto"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- "**/workflownexusservice/v1/service.proto"
- "**/applicationservice/v1/service.proto"

Comment on lines +26 to +27
// The status of the workflow execution being waited on. This is needed to determine whether the workflow completed successfully or failed.
temporal.api.enums.v1.WorkflowExecutionStatus status = 1;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't we say we're not adding this?

// (-- api-linter: core::0131::request-name-required=disabled --)
// (-- api-linter: core::0131::request-unknown-fields=disabled --)
message GetWorkflowExecutionResultRequest {
string namespace = 1;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We said not to add this. It's always same namespace.

Comment on lines +20 to +21
// The workflow execution to wait for.
temporal.api.common.v1.WorkflowExecution execution = 2;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should decide and then document what to do if run ID is provided. We may not be able to follow the runs in some cases and we would want a consistent experience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants