Spring Boot Starter for External Task Handler: Which one is recommended?

I just came along Camunda BPMN Run and made a PoC using external task handlers with the spring boot starter for the Java external task client
But this Spring Boot Starter seems not to be under development right now and I surprisingly found another one for the Java external gRPC task client

Which one is the better choice for the future? Will both be developed further or just one of them?

Thanks for any hints!

Hi @martin_schaefer,

you are on good track basically. We have adjusted and merged that first Starter you mentioned to the main repository last week with https://jira.camunda.com/browse/CAM-10863. This starter will be the supported and maintained External Task Client Spring Boot Starter by Camunda.

The other one is actually a pet project of mine which is currently under development. It also bases the External Task communication on gRPC rather than REST over HTTP like the “regular” External Task Client and the Camunda Engine REST API.

As to your questions:

  1. Better choice for the future? - That is probably dependent on your use case :slight_smile:
  2. Will both be developed further or just one of them? - For now we can only commit to the regular REST over HTTP way due to other priorities and feature requests. If there is enough demand for gRPC, we could shift more resources to that topic but that is not the case for now.

I hope that helps :slight_smile:

Best
Tobias

1 Like

Hi Tobias,
This is great news, because I am very fond of the external task pattern. Hacking a little PoC with Camunda BPM Run and a separate Spring Boot app was amazing. The “regular REST over HTTP” way Is also preferred by myself, as gRPC is most probably not used in my company for a while.

But which one is the “existing Spring Boot Starter” which is mentioned in https://jira.camunda.com/browse/CAM-10863? Can you give me a link to the Git project you are referring to? Thanks, and yes it helped :smile:

Hi @martin_schaefer,

the “existing Spring Boot Starter” is referring to our Camunda Spring Boot Starter module in our mono repository: camunda-bpm-platform/spring-boot-starter at master · camunda/camunda-bpm-platform · GitHub

Glad that helps, watch out for the 7.15 release, which is due for 13th of April. :slight_smile:

Best,
Tobias

Hi @tmetzke ,
Thank you for the hint. I tried to include camunda-bpm-spring-boot-starter-external-task-client in my project, but found no SNAPSHOT or alpha build on any maven repo. So I had to build it locally (Wow, camunda-bpm-platform is a true monster repository… :open_mouth:) and it worked nice with my PoC.
I would be glad if camunda-bpm-spring-boot-starter-external-task-client is included in the next 7.15 build.

Hi @martin_schaefer,

the artifact is not yet on Maven central since we just recently merged it and did not release an alpha yet. It is planned to have it on Maven central by the end of the week as an alpha, although we cannot promise that of course. But it will be officially available with the 7.15 release then. :slight_smile:

Yeah, the repository has become quite big but that is also done intentionally to ease up our release procedures. You can always build a submodule only that is of interest to not burden yourself with building all parts of the platform. In order to handle SNAPSHOT dependencies, you can add our Nexus to your Maven settings as a repository as described here:

https://docs.camunda.org/get-started/apache-maven/#camunda-nexus

That should by the way also allow to not build the platform locally at all in your case if you don’t want to adjust the platform code but rather only consume a SNAPSHOT artifact to try out things locally. :+1:

Best,
Tobias

Hi @tmetzke ,
Thanks for the hints, especially for the Maven Repo. I’m gonna include this into my project so I can start working with it as soon as a snaphot is available.