Is it possible to execute temporal workflow using HTTP REST calls

Hi Team,

Currently we are using the Temporal DotNet SDK for all the temporal communication but now we are exploring the Nexus service, so we are pretty much new here and under impression that we can replace our SDK implementation with the Nexus service we could be entirely wrong just got confused with the documents so thought to confirm it.

So first question is can we start/update workflow using the HTTP REST calls, we started working with the nexus service and created endpoint which is working fine when using Nexus client within another workflow but is there any way to execute workflow using the HTTP call or is there any way I can inject the Nexus client similar way we inject ITemporalClient.

So far we managed to get the Nexus endpoint details using below REST call and nothing more than that, we found couple more endpoint suggestion but all those are returning either 404 or "message": "invalid request method: expected GET, got \"POST\"". If you can help me to understand Nexus service because at this point we come to the conclusion we can’t use Nexus for HTTP operations it only allows or expose nexus client in the Workflow definition only. If it does support this please redirect me to the document and I will take a look.

Working Nexus GET endpoint, which is returns endpoint details - /api/v1/nexus/endpoints/{EndpointIdHere}

Not working Nexus POST endpoint, it always return invalid request - nexus/endpoints/{NexusEndpointId}/services/{ServiceName}/operations/{OperationName}

Thank you in advance!

Anyone from Temporal team can help on this, it would be great to speed up our nexus implementation, if it’s not what we are thinking or expecting then we can de-prioritize it for next phase.

@Chad_Retz Sorry tagging you here, but not sure if you can help me or not.

Hi @maheshmore,

The self-hosted version of Temporal supports this HTTP API as specified here: api/SPEC.md at 494165f890be9418c67dfce9c138694fe5c27855 · nexus-rpc/api · GitHub.

That being said, we currently consider these endpoints to be experimental and are meant to be used for server→server communication. These endpoints are not exposed in Temporal Cloud either so I wouldn’t count on using them for production use cases.

We have plans for building an HTTP connector for Nexus that integrates better with the Temporal auth model but that’s probably a few months away still.

1 Like

Hi @bergundy ,

Thank you for the response and link, it will help us to explore more.

We are actually exploring nexus so as part of it we are trying to understand the usage of it, even if it’s experimental that’s fine we are not planning immediately deploy anything related to nexus into production.

So when you say it’s currently under development and will be available in future does that mean I can invoke it from the Postman or any http client or there will be specific connector which will take care of temporal connection? Also we are using temporal server 1.29.2 image for deployment does this support this feature or I have to switch to any pre-release version, because as I mentioned I tried with different combinations of URL but that’s not working as expected.

Yes, the idea is that it will be invocable directly from any HTTP client but you may need to run the connector separately. The story may be different here between self-hosted and cloud though.

If you want to enable Nexus on server 1.29.x follow the instructions here: temporal/docs/architecture/nexus.md at main · temporalio/temporal · GitHub