Relatório de Arquitetura: Persistência de Estado Distribuído (BPMN/DMN)
Este relatório analisa a viabilidade e o design arquitetural para o armazenamento do ExecutionToken (Estado da Rede de Petri) do motor gbr_bpm, visando a escalabilidade para o ecossistema GBR (Sistema Operacional Distribuído P2P).
A análise foi fundamentada nos documentos internos do projeto (00-Brainstorm/README.md) e nos seguintes trabalhos científicos:
1. Decentralized Control: A Novel Form of Interorganizational Workflow Interoperability (Martinez et al.)
2. Horizontal Scaling of Transaction-Creating Machines (Delzer et al.)
3. Genet: A Quickly Scalable Fat-Tree Overlay for Personal Volunteer Computing using WebRTC (Lavoie et al.)
1. O Desafio do Estado Distribuído no BPMN
Em um fluxo de trabalho orquestrado por um único Agente, o estado (em qual "caixinha" do fluxograma o processo está) pode residir perfeitamente na memória RAM (gbr_ets) ou em um log de disco local (gdisk_log).
No entanto, no nosso objetivo final (Fase Final), múltiplos Agentes (Nós) colaboram em uma rede P2P (via WebRTC/Fat-tree) para resolver o mesmo processo. O grande problema técnico aqui é o *Consenso de Estado e Duplo Gasto de Tarefa: Se dois Agentes estão no mesmo *Gateway (Decisão), como garantir que apenas um assuma a tarefa seguinte sem que haja um servidor mestre central ditando as regras?
2. Análise dos Modelos Científicos
A Abordagem Blockchain (Smart Contracts)
O paper de Decentralized Control propõe o uso do Ethereum. O BPMN é compilado em um Smart Contract, e cada transição de estado da ficha (ExecutionToken) é uma transação minerada na rede.
- *Vantagem:* Confiança zero (Trustless) e rastreabilidade total.
- *Problema (Horizontal Scaling):* O paper de Horizontal Scaling expõe a ferida dessa abordagem. Blockchains sofrem gargalos severos de TPS (Transactions Per Second) e gerenciamento de Nonces. Para um Sistema Operacional de Agentes disparando milhares de micro-decisões por minuto, uma blockchain tradicional como o Ethereum seria lenta e financeiramente inviável (Gas fees).
A Abordagem ScyllaDB + Paxos LWT (A Solução Proposta)
Conforme idealizado no Brainstorm do GBR, usar o *ScyllaDB* contorna o gargalo da blockchain. ScyllaDB é um banco NoSQL de altíssima performance (milhões de TPS).
Mas como garantir o consenso sem blockchain? Através das *Lightweight Transactions (LWT)* baseadas no algoritmo Paxos.
- *O Design:* A transição de estado do BPMN é tratada como um Event Sourcing. Quando um Agente tenta mover a ficha da Tarefa A para a Tarefa B, ele executa um UPDATE state SET token = B WHERE token = A IF token = A (Compare and Set). O algoritmo Paxos do ScyllaDB garante atomicidade linear. Se outro Agente tentou no mesmo milissegundo, a transação falha para ele.
- *Rastreabilidade Auditação:* Diferente de uma Blockchain permissonless, um cluster ScyllaDB seria mantido por "Oráculos" da rede (Nós Enterprise/PaaS).
3. O Veredito Arquitetural para a Fase 5 e 6