Skip to content

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

License

Notifications You must be signed in to change notification settings

LeonardoFirme/workflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Workflow Engine v1

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.

🚀 Tecnologias Core

  • 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.

🏗️ Como a Aplicação Funciona

A aplicação opera através de três pilares fundamentais:

  1. Workflow Registry: Cadastro de fluxos dinâmicos com múltiplos nós via JSON.
  2. State Machine Engine: Valida se um nó pode transicionar de um status para outro (ex: impede que algo vá de DRAFT direto para COMPLETED).
  3. Audit Trail & Webhooks: Cada transição gera um log de auditoria no banco de dados e dispara um evento (Webhook) para sistemas externos.

🔌 Possibilidades de Implementação

Este motor é agnóstico e pode ser acoplado a diversas stacks:

Frontend (Interface)

  • 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.

Backend Integrado (Consumidores)

  • 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.

🛠️ Execução do Projeto

Pré-requisitos

  • Go instalado (v1.22 ou superior).
  • MySQL rodando localmente ou via Docker.

Instalação

  1. Clone o repositório:
git clone https://github.com/LeonardoFirme/workflow.git
cd workflow
  1. Configure o banco de dados no MySQL:
CREATE DATABASE workflow_db;
  1. Sincronize as dependências:
go mod tidy
  1. Execute a aplicação:
go run cmd/api/main.go

A API estará disponível em http://127.0.0.1:3000.


📝 Endpoints Principais

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.

🛡️ Licença

Desenvolvido por Leonardo Firme. Uso exclusivo para implementações profissionais de alta performance.


About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors