Сборка технологического движка с использованием Akka/Scala

В настоящее время я пытаюсь реализовать прототип механизма процессов в Akka/Scala, который анализирует XML-файлы, а затем выполняет некоторые элементы процесса BPMN. Я хочу начать с базового BPMN-процесса, доступного в виде XML-файла.

Я думал, что хороший способ - использовать FSM для этого. Поэтому сначала может быть проанализирован XML-файл со структурой данных, например, разделенной на узлы (с подклассами, такими как задача, шлюзы и т. Д.) И объекты последовательности (например, должен иметь состояния, чтобы он знал, с какого узла он направляется в какой узел).

Для того, чтобы узнать, когда закончится процесс, я думал об использовании токенов? Когда токен достигает цели, он знает, что это сделано.

Это некоторые процессные механизмы, на которые я смотрел, но которые я не совсем понимаю, и их тоже слишком сложно:

https://github.com/eamelink/akkaflow/tree/master/src

https://github.com/catify/bpmn-engine

Также я не совсем уверен, должен ли я написать свой собственный парсер или "просто" использовать уже данные парсеры и изменить их, например:

https://github.com/1and1/Activiti-internal/blob/master/modules/activiti-bpmn-converter/src/main/java/org/activiti/bpmn/converter/BpmnXMLConverter.java

У кого-нибудь есть опыт или совет?

1 ответ

Вы смотрели на Uber Cadence? Он позволяет указывать вашу логику в виде кода, поэтому все, что вам нужно, это написать анализатор для вашего XML и интерпретировать ваши структуры данных. Вся отказоустойчивость и долговечность уже решены двигателем.

Другие вопросы по тегам