We are trying evaluate a scenario using Camunda 8 SaaS offering. We are planning to use Camunda as a service orchestration layer. In that service integration, there are two external systems invocation and one rule service execution, which will be coordinated by Camunda execution engine. We need to expose this service orchestration as a service to the external world. In our current implementation, we have used Camunda 8 Webhook out of the box component to pass the request to Zeebe. We are preferring to have a synchronous communication with Camunda. Please help me here to understand the best possible solution to address this issue.
Can you explain more about what you’re trying to gain from synchronous communication and how you’d expect Camunda to react to that?
@Niall : Thank you for your reply. We are expecting to return the outcome of the service orchestration to the calling system in real time. We are expecting the execution of the process flow to be very short. From a design perspective, we are expecting to provide a wrapper to our service orchestration process and interact with the external system in real time. Please let me know in case you need further information.
Thanks for the explanation.
The Camunda 8 engine is event based and non-transactional so there’s no way to run it in synchronously with a call.
Instead you’d meed to actively tell the service somehow that the process is finished
as Niall explained, there is no synchronous execution possible.
But with the help of reactive programming and a unique worker-id you can achieve a direct response to the process start. Have a look at this example: https://github.com/camunda-community-hub/camunda-8-examples/tree/main/synchronous-response-springboot
Hope this helps, Ingo
Thank you for your reply. I have gone through the idea of the solution and appreciate your quick response to my stated problem. I am going to apply this to my process and will share an update here.
I have tried the above-mentioned approach to address my problem. I am able to get the response, what I was looking. But, at the same time I have seen one issue on the implementation. Token is not moving to the End activity from Message Intermediate Throw Event. I am having autoComplete property set as true for the Worker component at Java side. I changed the Message Intermediate Throw Event to a Message End Event and experience the same behavior. Is there anything extra that I am missing to move the token out of the Message event?
Thank you in advance to have a look to my mentioned issue.