Sou tendencioso, sou um dos autores de ruote .
variante 1) máquina de estado ligada a um recurso (documento, pedido, fatura, livro, móvel).
variante 2) máquina de estado conectada a um recurso virtual denominado tarefa
variante 3) mecanismo de fluxo de trabalho interpretando definições de fluxo de trabalho
Agora que sua pergunta foi marcada como "BPM", podemos ser expandidos para "Gerenciamento de processos de negócios". Como esse tipo de gerenciamento ocorre em cada uma das variantes?
Na variante 1, o processo de negócios (ou fluxo de trabalho) está espalhado no aplicativo. A máquina de estado conectada ao recurso impõe alguns dos aspectos do fluxo de trabalho, mas apenas aqueles relacionados ao recurso. Pode haver outros recursos com sua própria máquina de estado seguindo o mesmo processo de negócios.
Na variante 2, o fluxo de trabalho pode ser concentrado em torno do recurso de tarefa e representado pela máquina de estado em torno desse recurso.
Na variante 3, o fluxo de trabalho é decretado pela interpretação de um recurso denominado definição de fluxo de trabalho (ou definição de processo de negócios).
O que acontece quando o processo de negócios muda? Vale a pena ter um mecanismo de fluxo de trabalho onde os processos de negócios são recursos gerenciáveis?
A maioria das bibliotecas da máquina de estado tem 1 conjunto de estados + transições. Os mecanismos de fluxo de trabalho são, a maioria deles, intérpretes de definição de fluxo de trabalho e permitem que vários fluxos de trabalho diferentes sejam executados juntos.
Qual será o custo de alterar o fluxo de trabalho?
As variantes não são mutuamente exclusivas. Já vi muitos exemplos em que um mecanismo de fluxo de trabalho altera o estado de vários recursos, alguns deles protegidos por máquinas de estado.
Eu também uso muito a variante 3 + 2, para tarefas humanas: o mecanismo de fluxo de trabalho, em alguns pontos ao executar uma instância de processo, entrega uma tarefa (item de trabalho) para um participante humano (a tarefa de recurso é criada e colocada no estado 'pronta') .
Você pode percorrer um longo caminho com a variante 2 sozinha (a variante do gerenciador de tarefas).
Também poderíamos mencionar a variante 0), onde não há máquina de estado, nenhum mecanismo de fluxo de trabalho e os processos de negócios estão espalhados e / ou codificados no aplicativo.
Você pode fazer muitas perguntas, mas se não reservar um tempo para ler as respostas e não reservar um tempo para tentar e experimentar, você não irá muito longe e nunca adquirirá qualquer habilidade para quando usar esta ou aquela ferramenta.