Creating a tasklist plugin when using spring boot camunda

I want to create a Tasklist plugin using spring boot camunda, which can automatically forward all updates regarding user Tasks (create, assign, complete, delete) including their variables to an Elasticsearch instance. Which can enables users to full-text-search the existing tasks in Elasticsearch.

I was looking at below, but it doesn’t seem to support with embedded spring boot application
https://docs.camunda.org/manual/7.12/webapps/tasklist/tasklist-plugins/

Please suggest how I can proceed…

Consider using a Process Engine plugin rather than a task list one.
It can potentially intercept the events on a lower level than task list.

Two ideas here:

  1. check out the camunda camel extension (https://github.com/camunda/camunda-bpm-camel)
  2. have a look at the taskpool … it does not use eleastic, but could be a lib for extracting and gathering the data (https://github.com/holunda-io/camunda-bpm-taskpool)
1 Like

I got one more idea. Can I use the task listeners 7.12 to forward all updates to elasticsearch by rest call?

image

Well, yes, tasklisteners are the basic idea that is also behind the two tools mentioned above.

If you are doing this “just for fun”, go ahead with rest in tasklisteners … if you are planning to use this in production, think about a) what happens if your camunda engine cannot create a task just because you got a network timeout for the elastic-rest call. b) what happens if you sent the task to elastic, but then camunda fails and rolls back the transaction (so that the task does not exist in camunda … but in elastic).

yeah I am planning this for production. I have see holunda taskpool but its not approved in our company along with camunda camel too.
To tackle problems a) may be I can use Async call (Kafka) or add retry logic or job to update elastic when its back.
b) question: Lets say create or assignment task listener gets triggered, will it happen after successful creation/assignment in camunda or there are chances it may fail. does it call task listerners in case of failure?