Motor BPMN Core e Atores Erlang
Orquestração de processos de negócio com base no cálculo lambda e atores OTP altamente tolerantes a falhas.
Motor BPMN Core e Atores Erlang
A orquestração de regras de negócios de longa duração e fluxos estruturados dentro do ecossistema Gleam-BR é de responsabilidade do pacote gbr_bpm. Este componente atua como o "coração lúcido" de nossa execução operacional.
1. O Modelo de Atores BEAM como Contêiner de Processos
Cada processo de negócio instanciado a partir de arquivos BPMN 2.0 (Business Process Model and Notation) ou tabelas DMN (Decision Model and Notation) é mapeado como um processo concorrente leve e isolado da máquina virtual BEAM.
-
Atores Resilientes: Um fluxo não é armazenado em uma fila monolítica de banco de dados tradicional. Cada token do fluxo de trabalho é controlado por um ator OTP (
gleam_otp) dedicado, com seu próprio estado isolado e caixa de mensagens tipada. - Supervision Trees: Os atores de processos de negócio são organizados sob árvores de supervisão de ciclo de vida. Se uma tarefa de integração ou chamada de rede falhar temporariamente, as estratégias de recuperação (OneForOne, RestForOne) do Erlang/OTP garantem que o estado do fluxo seja reconstituído para a última etapa íntegra sem queda do sistema global.
2. Abordagem Baseada em Cálculo Lambda
Inspirado nos conceitos de Topologia Algébrica e BPE (Business Process Engine) do ecossistema Erlang, o motor gbr_bpm trata a execução de tarefas como uma composição determinística de funções:
- Estado como ADT: O progresso de um processo é representado por Tipos de Dados Algébricos (ADTs) estáticos no Gleam, que transitam de forma imutável à medida que eventos e mensagens de controle chegam na caixa de correio do ator.
- Sem Efeitos Colaterais Ocultos: Toda chamada externa de I/O (gravação em disco, requisição HTTP, invocação de IA) é representada explicitamente como um evento de transição de estado, permitindo depuração precisa por replay de eventos.
- Auditabilidade Matemática: Como os estados e transições são mapeados de forma determinística, é possível provar matematicamente a corretude dos fluxos de trabalho e auditar todas as ações executadas pelos nós distribuídos na malha.