Using history/task for incomplete vs completed tasks?


I am building a workflow in which I want to be able to run a number of parallel tasks, and track the completed vs not-yet-completed tasks, and I am curious as to opinions on the best way to do this.

Looking through the docs, I experimented with the history/task API (since the regular task fetch only returns incomplete tasks) and tasks returned there have an endTime property, which makes it clear that it is a completed task. Is there anything wrong with using the history/task API to track task progress in this way? Someone else at my company had said they spoke with someone with Camunda who said not to make use of this API this way, so I wanted to check for myself if anyone from Camunda is able to weigh in.

The only alternative I see is to use our own database and to track completed tasks with it by recording the task status there.

Any info is great. Thanks!

If we are “not supposed to use the history service for that functionality” that would be VERY interesting to have some background on.

Depending on your scale, using history tends to mean more indexes.

Using the history dB for your usecase is very common.

Yeah, it certainly seemed like a very sensible use of it, so I wanted to inquire myself about it before taking what my colleague said as a certainty.

Here is a additional example of plugging in your own dB to track the history events GitHub - StephenOTT/Camunda-MultiEngine-Data-Service: Camunda Process Engine Plugin providing a new History Handler (MongoDB) and Query Service that supports Complex Security Rules and Mongo Aggregations

Using our own database to track the history of events is what my colleagues are doing for managing their workflows already, so I know that’s an option and we’re potentially building a service that manages that for us.

What I’m hearing from you is that there shouldn’t be anything wrong, to your knowledge, of using the history service for tracking and managing event/task history?