Using temporal for orchestration in Sync call

Hi,

I was wondering if you have any recommendations to use Temporal as part of a sync call (caller is waiting for the response).

The use case is:

  1. A http call is made to service A
  2. Service A does some orchestration i.e. calls multiple services waiting for their response
  3. Service A returns response back to the caller

Is there any benefit of using Temporal here for orchestration purposes? Please note that this is not just starting the workflow but also waiting for activities to be completed and return the response back to the caller.

Thanks.

The Temporal main value proposition is in simplifying building resilient stateful systems. So for your use case, I would ask yourself the following questions:

  1. Is it a problem if the state of the whole orchestration is lost if any of the processes involved in it crashes?
  2. Is the orchestration still relevant if the calling client crashes?
  3. Can the client retry the request after the crash instead of reconnecting to the previously started orchestration?
  4. Should an orchestration complete orchestration with a large delay in case of a downstream service being down for some time?

So if you answered yes to all the questions then Temporal is the perfect technology for your use case and is going to simplify your development big time.

I you answered no to all of them I would stick with the usual request reply RPC services.

If your answer is mixed then I’d need to know more about your use case to give a recommendation.

Thanks a lot Maxim for the quick response.

Assuming the SLA is a few seconds and also assuming services are built with idempotency in mind some of the concerns above like points 1 and 3 shouldn’t matter (the answer to them is No) as long as the client retries?

If the client can retry and state is not important then the answer to all 4 is no and there is no reason to use Temporal.

Thanks. Appreciate it