Orchestrating existing Microservices (REST)

Hi Guys,

I have been trying to understand how Zeebe could be used to orchestrate existing microservices (REST Api). What feel is that to use Zeebe

  1. I need to write the Zeebe client and probably plug my microservice logic into it.
  2. There is no away to plug existing REST based microservices to Zeebe.
  3. or create some kind of connector.

Is my understanding correct? A response on this will enable to me to decide whether to use Zeebe or not.
Thanks

Hi @vidhyabhushanbahl,

there are different ways to connect your microservices.

  1. Use a generic REST worker to call the REST APIs of the microservices. For example: https://github.com/zeebe-io/zeebe-http-worker
  2. Integrate one of the Zeebe client into the microservices to connect them to the Zeebe broker

Does this help you?

Best regards,
Philipp

3 Likes

Another option - Camunda Cloud (or implementing the same thing yourself). See the section about the HTTP Worker here: https://zeebe.io/blog/2019/09/getting-started-camunda-cloud/

2 Likes

For some reason this does not seem to work for me

The following is the BPMN file I am having

<bpmn:serviceTask id="Task_0ao0bhh" name="Initiate-Payment">
  <bpmn:extensionElements>
    <zeebe:taskDefinition type="initiate-payment" />
  <zeebe:taskHeaders>
  	<zeebe:header key="url" value="http://52.157.78.85:5000/initiate-payment" />
  	<zeebe:header key="method" value="GET" />
  </zeebe:taskHeaders>
  </bpmn:extensionElements>
  <bpmn:incoming>SequenceFlow_0830dqf</bpmn:incoming>
  <bpmn:outgoing>SequenceFlow_1o629z7</bpmn:outgoing>
</bpmn:serviceTask>

I have copied only the first task due to the limitations of a new user not having more than 2 links
I have a python flask service created for the tasks and I do not see them invoked

What am I doing wrong?

Is your python worker subscribed to tasks of type Initiate-Payment? It needs to be sending an activateJobs command to the broker for tasks of that type. Forget about the HTTP part to begin with, and verify that you can activate jobs.