Camunda as a workflow orchestration Engine

2 Questions I have :-

I have a bunch of API’s some java microservices while others are just endpoints exposed by other systems through an API Gateway, I’m thinking of using Camunda as the workflow engine to orchestrate the calls between the various API’s based on certain conditions etc. API’s can be reused in different workflows etc. A workflow will typically contain the orchestration to fulfil a certain product.

When playing with Camunda, I noted that for the Worker and Java Services to subscribe to the topic, we had to include the config to the Camunda Engine " // configuration for the Client:
// - ‘baseUrl’: url to the Workflow Engine
// - ‘logger’: utility to automatically log important events
const config = { baseUrl: “http://localhost:8080/engine-rest”, use: logger };"

How do I configure this such that my workflow/api doesn’t need to be specific to Camunda? I.E. I have an Open Account API which I want to invoke after certain rules have been met. I can’t modify this api to have the Camunda base URL etc as this is API belongs to another entity and its used by many others areas? I typically just want to call it? Can I tell camunda to publish to it rather than expecting it to subscribe to the camunda topic?

Is camunda the right tool for this?

A workflow can be modeled to make API calls through connector implementation. You can see the HTTP connector implementation here.

An option to specify the URL, method, headers, the payload is given as seen from the image below.

Connector configuration can be plugged in by following these steps


Seems like I’m missing something, my camunda looks like.

There is no option to enter url:Text

@Khanyi The Camunda Modeler has changed over the years. What you see is correct. Instead of Text, it will be String or Expression

Here’s my screenshot from a working BPMN:

So you are on the right track.

Now you can give any name to Process Variable Name in output but in the script that you will use to process the API response, remember to use the default variable response.

See below for example:
Screenshot 2020-11-18 at 10.11.44 PM

The syntax used is from the SPIN Library.