cancel
Showing results for 
Search instead for 
Did you mean: 

Evaluation of Activiti

jan_lisse
Champ in-the-making
Champ in-the-making
Hi!

i'm currently evaluating Activiti as a replacement for some kind of legacy workflow-engine/state-machine in an enterprise scenario.
So far the project looks really promising!
I have read the user guide, downloaded the distribution and went through the examples, but i wasn't able
to answer all of my questions.

I have a basic order process, verbalized as follows:

- start process upon receival of an order message
- loop through all orders of the order message
- foreach order item call external service to process its data
- async. wait for external service response
- if all orders are processed (either with or without errors) continue
- foreach order perform data generation and save to database
- send complete message

I didn't find anything in the docs about starting a process by receiving a message (the BPMN 2.0 spec mentions a message event, but is it already implemented?)
On the forums i read that looping is not supported yet. What is the recommended way to work around this?
And finally, is it possible to trigger an intermediate event when receiving a response of the external service (while the sequential flow waits until the event occured)?
Activiti comes with a lot of amazing features but im still not sure wether it is a good fit for my specific usecase or not.

Many thanks in advance for any help or pointers!
-Jan
1 REPLY 1

jbarrez
Star Contributor
Star Contributor
I didn't find anything in the docs about starting a process by receiving a message (the BPMN 2.0 spec mentions a message event, but is it already implemented?)

It is not yet implemented. You would need to do it yourself with eg. JMS that triggers the start of the process.

On the forums i read that looping is not supported yet. What is the recommended way to work around this?

An outgoing sequence flow with an expressions such as for example '${counter < 10}' that goes back to what you want to loop on.
You can use an eventlistener to update your counter variable.

And finally, is it possible to trigger an intermediate event when receiving a response of the external service (while the sequential flow waits until the event occured)?[/quote}
You would need to use a wait state. You would also need to have an external reachable method that calls a signal() on the runtimeService.

[quote}Activiti comes with a lot of amazing features but im still not sure wether it is a good fit for my specific usecase or not.
Thanks! I do hope you find Activiti fitting for your needs 🙂