Long-time BPMN/Camunda user considering the leap to Temporal

I have searched the forum for BPMN and Camunda and found some great answers to the questions that I had - so thanks for that.

One remaining question I have relates to being able to query for available workflow definitions. Let me set some context. I’m under the impression that the use cases I have seen for Temporal suggest that huge enterprises rely on it’s durability for running a handful of core processes (be it with millions of executions).

Our use case is different - and I just need to understand if it is still a decent use case for Temporal. In Camunda, we would define between 100 and 200 unique process definitions for each enterprise we automated. We used DDD to define boundaries and this drove the huge number of distinct definitions. This worked very, very well and is something we want to maintain if we shift from Camunda.

Just to be clear: using BPMN as an intermediate resource to drive execution is NOT something we want to continue.

In Camunda, we defined “user assignment” at the process definition level and various other custom properties of process definitions that allowed us to surface the processes each user could start in a UI. This largely came down to roles but also included other filtering criteria like “next-best-action” recommendations.

In Camunda, I could query the process engine to filter processes that each user could start and expose them in a portal that we developed.

I can see clearly that Temporal supports queries against execution history, but I’m still not seeing how we query to determine (in our case) a very long list of deployed workflow definitions. If the answer is: “do that in your own code” then my next question is, is there a way to leverage Temporal durability here to ensure that the list of definitions a user can start is reliably available and current?

We plan to add service registries and service definitions as part of the Nexus project.

But currently, you’ll have to implement this logic yourself. You can use an external DB to store the list of definitions and update it every time a worker starts. It is possible to implement a workflow that maintains the list as well.

Excellent! Thank you Maxim.