2014-09-30 33 views
8

Nella nostra applicazione Scala/Play usiamo activiti. (anche sperimentando con camunda) gli utenti possono creare flussi di lavoro (mostrato in questa immagine http://camunda.com/). Tutte le chiamate a questi motori di flusso di lavoro esterni sono incluse in Scala Future (le API activiti e camunda sono tutte API di blocco Java).Costruisci motore flusso di lavoro con Akka

c'è una libreria per implementare i flussi di lavoro totalmente utilizzando Akka/Actors evitando pesanti toolkit come activiti/camunda? O idee su come utilizzare al meglio Akka con activiti/camunda?

risposta

2

Si potrebbe provare a utilizzare Akka FSM dsl per eseguire la stessa attività di esclusione e anche per bloccare l'apis. vedi http://doc.akka.io/docs/akka/snapshot/scala/fsm.html

+0

Bene, Akka FSM può essere una buona soluzione per l'implementazione di flussi di lavoro "statici" in cui si è a conoscenza del controllo dello stato della macchina. Activiti/camunda consente di creare al volo flussi di lavoro/definizioni di processo e gli utenti possono modificare il flusso di lavoro in modo dinamico, ecc. Esiste un modo per creare dinamicamente l'FSM in modo simile a activiti/camunda/jbpm? – user2066049

2

Si noti che camunda ha molto powerful asynchronous continuation features che consente di delegare qualsiasi elaborazione di lunga durata ai thread in background. Ciò consente una configurazione molto flessibile di "quanto lavoro" viene eseguito in modo sincrono nel thread del client (possibilmente HTTP). Questo può darti un buon equilibrio tra prestazioni e tolleranza ai guasti.

1

Conosco l'esistenza dello Catify BPMN Engine, creato utilizzando Akka (Java). Non ho alcuna esperienza con esso, né so con certezza se le chiamate API sono asincrone, ma mi aspetterei di sì. Poiché è scritto in Akka, dovrebbe combaciare bene con Play !.