Motor de gerenciamento de fluxogramas de alta performance desenvolvido em Go, focado em consistência de dados, tipagem estrita e transições de estados validadas.
Esta aplicação foi desenhada para servir como o "cérebro" de automações complexas, onde cada mudança de status de um nó é validada por uma State Machine interna e auditada em tempo real.
- Go (Golang) 1.25+: Runtime de alta performance e concorrência nativa.
- Fiber v2: Framework web extremamente rápido para rotas de API.
- GORM: ORM para persistência segura e migrações automáticas.
- MySQL: Banco de dados relacional para garantir integridade.
- Goroutines: Processamento assíncrono para disparos de Webhooks.
A aplicação opera através de três pilares fundamentais:
- Workflow Registry: Cadastro de fluxos dinâmicos com múltiplos nós via JSON.
- State Machine Engine: Valida se um nó pode transicionar de um status para outro (ex: impede que algo vá de
DRAFTdireto paraCOMPLETED). - Audit Trail & Webhooks: Cada transição gera um log de auditoria no banco de dados e dispara um evento (Webhook) para sistemas externos.
Este motor é agnóstico e pode ser acoplado a diversas stacks:
- React + Tailwind v4: Ideal para criar dashboards dinâmicos utilizando bibliotecas como React Flow para renderizar os nós e conexões.
- Next.js 16+: Perfeito para plataformas SaaS que consomem a API Go via
proxy.ts.
- Laravel (PHP): Excelente para atuar como o ERP principal que recebe as notificações (Webhooks) do motor Go para atualizar registros financeiros ou de vendas.
- Node.js / Python: Para disparar automações de e-mail ou processamento de dados baseados na mudança de estado do workflow.
- Go instalado (v1.22 ou superior).
- MySQL rodando localmente ou via Docker.
- Clone o repositório:
git clone https://github.com/LeonardoFirme/workflow.git
cd workflow
- Configure o banco de dados no MySQL:
CREATE DATABASE workflow_db;
- Sincronize as dependências:
go mod tidy
- Execute a aplicação:
go run cmd/api/main.go
A API estará disponível em http://127.0.0.1:3000.
| Método | Endpoint | Descrição |
|---|---|---|
POST |
/api/v1/workflows |
Cria um novo fluxo com nós e metadados. |
GET |
/api/v1/workflows |
Lista todos os workflows e seus respectivos nós. |
PATCH |
/api/v1/nodes/:id/status |
Tenta transicionar o status de um nó (Validado pela Engine). |
GET |
/api/v1/nodes/:id/history |
Retorna todo o rastro de auditoria de um nó específico. |
Desenvolvido por Leonardo Firme. Uso exclusivo para implementações profissionais de alta performance.