vcjmhg opened a new issue #7360:
URL: https://github.com/apache/skywalking/issues/7360


   Please answer these questions before submitting your issue.
   
   * Why do you submit this issue?
   
   * [x] Question or discussion
   * [ ] Bug
   * [x] Requirement
   * [ ] Feature or performance improvement
   
   ---
   
   ### Question
   * What do you want to know?
   The zeebeBroker used in `plugin-scenario` is a service built on the external 
network by me. Is there any way to simulate zeebe broker in the 
`zeebe-plugin-scenario`. It seems impossible to deploy zeebe through docker, 
and it seems unreasonable to place zeebe packages into `zeebe-plugin-scenario` 
directly.
   
   ---
   ### Requirement or improvement
   
   * Please describe your requirements or improvement suggestions.
   
   # Summary
   
   `Zeebe` is a workflow engine from Camunda, designed to meet the scalability 
requirements of high-performance applications running on cloud-native software 
architectures and to support workflows that span multiple microservices in low 
latency, high-throughput scenarios. When we use zeebe for service 
orchestration, due to the lack of support for the zeebe plugin, the span of the 
process instance will be disconnected from the corresponding Jobwork, forming 
mutually independent spans.
   
   For easy understanding, we imagine the following scenario:
   
   The user accessed service A through the gateway, and service A created a 
process instance through service B. JobWorker activates an internal task by 
polling ZeebeBroker, which in turn calls other services such as kafka.
   
![image](https://user-images.githubusercontent.com/55177318/126644037-e65ed15e-7bf1-4d59-b9a7-f91474cc3a1b.png)
   
   
   Without the `zeebe-client-plugin`, when the scenario is displayed in 
skywalking, the spans of several locations in the figure below will be 
disconnected, forming serval independent spans.
   
![image](https://user-images.githubusercontent.com/55177318/126644050-d39fc172-388a-4974-b6ea-2ef2a17cbfdb.png)
   
   Without the `zeebe-client-plugin`,the spans generated by the creation of 
process variables and the execution of their corresponding JobWorker can be 
connected in series. And make the service ZeebeBroker transparent, because in 
actual scenarios, we don’t care about the internal processing logic of 
ZeebeBroker. Just like this:
   
   
![image](https://user-images.githubusercontent.com/55177318/126644086-0ac66171-7f7b-4096-853a-d94a6554cf18.png)
   
   The final span display result is similar to the following:
   
![image](https://user-images.githubusercontent.com/55177318/126644115-83c7960d-9117-4c4d-99e4-2f4ad257f290.png)
   
   Service A creates a process instance named process_id through 
`CreateWorkflowInstance`(). And the process instance is executed by the 
JobWorker whose type is activateJob. Finally, the remote api service is called 
inside JobWorker.
   
   # how to desgin
   
   Before create process instance, we create an ExitSpan and put the 
contextCarrier into process variables of zeebe.
   
   Before execute Job, we get the contextCarrier and restore context.
   
   
![image](https://user-images.githubusercontent.com/55177318/126644143-3092394e-141a-460c-82a5-b95336b6b40e.png)
   
   why we use process variable?
   
   ZeebeBroker is too complicated, a simple schematic diagram is as follows:
   
   
![image](https://user-images.githubusercontent.com/55177318/126644168-a6b8d12e-7397-4358-bd19-6da19834356e.png)
   
   
   If we choose to directly enhance on ZeebeBroker, we need a lot of 
enhancement points. High difficulty on the one hand, low efficiency on the other
   
   # test results in UI
   
   
![image](https://user-images.githubusercontent.com/55177318/126730240-5d495f91-83c9-4d84-aba9-b74b233027ee.png)
   
   
   # Issues to be discussed
   
   The zeebeBroker used in `plugin-scenario` is a service built on the external 
network by itself. Is there any way to simulate zeebe broker in the test 
project. It seems impossible to deploy zeebe through docker, and it seems 
unreasonable to place zeebe packages into `plugin-scenario` directly.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to