I am trying Camunda for the first time, need suggestions for the best way to integrate the UI and spring boot microservices. Actually I am having Two spring boot projects both is having the custom UIs. I want to know which is the best way to connect (java delegate or connectors or external task)the APIs in spring boot to camunda modeler. And can we use service task for frontend code also or only forms we can expose UI?
@Jane you can deploy camunda as a standalone service and enable camunda rest api’s by adding camunda rest module. So you can make rest api calls from your springboot application.
Let me see if I understand your question telling you about my experience.
In my project, we have several spring boot microservices with an embedded Camunda (using Camunda Spring Boot Starter).
We are using Camunda to orchestrate others microservices.
The first version we made, was using connectors. But we found that approach had some disadvantages.
For example, we needed to implement a lot of activities for error handling and caching.
So, in the second version, we implemented Java Delegates to post to the microservices, handle the errors and caching. That is way easier than using the http-connector.
Hope this helps you!
Cheers,
Diego
yeah exactly what I have asked for. But want to know for UI part we cannot use same right(Java delegates)??? Suggest me on UI if you have idea on that (UI will be built on React JS)
That’s the part I don’t understand. Java Delegates lives at the back-end. I don’t see how you can use them at the front-end.
I’m really sorry.
But I can tell you, in a well-distributed system, it’s a good practice to have a front-end app, which uses microservices under the BFF pattern, and that (those) BFF hits the real microservices implemented with Camunda and Spring Boot.
Personally, I don’t like monolithic with front-end and back-end in the same artifact. I do like monolithic, but not in that way
Using logging.
One approach could be adding Script Tasks to log what you want. I recommend Groovy as Script Language.
Similar to this, you can write a Java Delegate instead of a Script.
The third approach, adds a listener to each task that writes the log.