Skip to content

Latest commit

 

History

History
101 lines (60 loc) · 3.06 KB

File metadata and controls

101 lines (60 loc) · 3.06 KB

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.