在我们的Scala / Play应用程序中,我们使用activiti。 (也尝试使用camunda)用户可以创建工作流程(如图所示http://camunda.com/)。对这些外部工作流引擎的所有调用都包含在Scala Future中(activiti和camunda API都是Java阻塞API)。
是否有任何库实现工作流程完全使用Akka / Actors避免像activiti / camunda这样的重型工具包?或者想法如何最好地使用Akka与activiti / camunda?
您可以尝试使用Akka FSM dsl执行相同的绕过活动并阻止apis。见http://doc.akka.io/docs/akka/snapshot/scala/fsm.html
请注意,camunda具有非常powerful asynchronous continuation features,允许您将任何长时间运行的处理委托给后台线程。这允许在客户端(可能是HTTP)线程中同步完成“多少工作”的非常灵活的配置。这可以在性能和容错之间实现良好的平衡。
我知道使用Akka(Java)构建的Catify BPMN Engine的存在。我对它没有任何经验,也不确定API调用是否是异步的,但我希望如此。因为它是用Akka写的,所以它应该与Play!结合得很好。