in newer versions of camunda engine, it’s able to invoke the external task through “`something called topic, similar concept as MQ/Kafka. (in addition to old approach of REST calls.)
However, to integrate camunda external client with Spring boot took me something to figure out. The integration with standalone java process is working fine, something like
Note: it seems like running multiple ExternalTaskClient with same engine (HTTP://localhost:8080/engine-rest here) on same JVM seems like not working.
however, with spring integration, it’s not able to subscribe to the topic. Where on camunda cockpit, the task would show messages # posted not yet consumed:
In Java, subscribe to the topic:
in config, tell where is the engine:
on cockpit, it would show # of messages posted, however, pending for consumption (2 messages here for example).
for each process instance, its pointing Extneral Tasks, which is the topic
turns out the problem and the solution is with the in-compataility between spring boot (an in-hour built library which is a wrapper of Spring boot) version and camunda external client.
The only needed dependency from camunda side:
to make it work, the spring boot version worked is 2.7.10 and below, version 3 above is not working: