Dynamic decision making


I’m exploring the capabilities of Camunda in relation to process modeling and have a specific scenario in mind. Imagine there’s a machine, either physical or virtual, capable of performing certain tasks, each identified by a unique service name. For instance, there could be services named for tasks like “Hello world” and “Bye friend.”

Now, suppose a user is designing a BPMN process that includes multiple steps (represented as Service Tasks), and all these steps are designated with the same Task Definition. Is there a mechanism within Camunda that allows it to automatically determine and execute the appropriate Service at each step without requiring the user to assign a specific ServiceName to each step beforehand? This is important especially considering that the user might not be aware of the specific services available on the machine.

The key requirement is for the decision on which service to invoke to be made dynamically at runtime, without relying on DMN or any static binding for this determination.

Thank you.

Hi @el10 and welcome to the forum,

Are you searching for a service discovery and negotiation protocol, which allows your process to automatically find and bind a suited service for a given specification/contract?

Hello Stephan,

Thank you for your reply.

Yes, I need my process to automatically bind the most suitable service (considering that the service discovery is already done). Is that possible?

Thanks in advance.

No, this cannot be done automatically by Camunda. You’d need to write an intermediate layer that is binding the service.