I ve setup Camunda engine as remote server, but I am wondering what is the best approach my system to be notified for changes in the process engine ( this includes events as timers, messages, or creation of single or multi instance tasks, completing current tasks, updating assignee and so on ). The changes are done trough my application using Camunda Rest API and Apache CXF. Do I need custom listener in the remote engine that communicates with my server through Rest or to implement pulling to the Camunda server at my application?
Seems no one have faced such problem.
Both solution approaches you outline (a listener that pushes notifications or an external component that pulls historic data) are valid. Depending on your requirements and environment, one or the other may be better suited. Do you have a specific question on that?
May be if you have some well known solution to share, but it is enough that you confirmed both approaches might be used. Thank you.
Hi @bbanchev we are developing a GUI Client that (amongst other things) uses Camunda for business process handling.
We started with a “pull Camunda via REST solution” and ended up with a ton of workarounds for race conditions when pulling the engine especially in cases of asynchronous continuation.
So we changed our architecture to use messaging (RabbitMQ in our case) for notifying the client when the state of any process has changed.
BPMNParseListener comes in handy here. We use it to globally register listeners for every process on any event we are interested in (UserTasks and EndEvents in our case) and then notify our GUI about changes in the process.
I hope that helps with finding out what’s most suitable for your situation.
Yes, your post helps a lot to figure out the better solution. I will check the messaging integration. Thank you a lot!