13

In our Scala/Play application we use activiti. (also experimenting with camunda) users can create workflows (shown in this picture http://camunda.com/ ). All calls to these external workflow engines are wrapped in Scala Future (activiti and camunda APIs are all Java blocking APIs).

is there any library to implement workflows totally using Akka/Actors avoiding heavy toolkits like activiti/camunda? Or ideas how to best use Akka with activiti/camunda ?

user2066049
  • 1,371
  • 1
  • 12
  • 26

3 Answers3

4

You could try and use the Akka FSM dsl to do the same bypassing activity and also blocking apis. see http://doc.akka.io/docs/akka/snapshot/scala/fsm.html

  • Well, Akka FSM can be a good fit for implementing "static" workflows where you are aware of state machine upfront. Activiti/camunda allows you to create workflows/process definitions on the fly and users can change workflow on dynamically etc. Is there a way to create FSM dynamically similar to activiti/camunda/jbpm? – user2066049 Oct 01 '14 at 13:20
4

Note that camunda has very powerful asynchronous continuation features which allow you to delegate any long-running processing to background threads. This allows very flexible configuration of "how much work" is done synchronously in the client (possibly HTTP) thread. This can give you a good balance between performance and fault tolerance.

meyerdan
  • 529
  • 2
  • 4
3

I know of the existence of the Catify BPMN Engine, built using Akka (Java). I do not have any experience with it, nor do I know for sure whether API calls are asynchronous, but I would expect so. Since it is written in Akka it should combine well with Play!.