DEC-001 — Stack Tecnológica do V360

Contexto

O V360 precisa de base robusta, relacional e auditável: segregação entre empresas, origem de cada informação, Human Gates rastreáveis, documentos protegidos e uma camada de IA que só sugere.

Proposta

CamadaEscolhaPor quê
BancoPostgreSQLrelacional, maduro, transações, JSONB, extensões
Plataforma do bancoNeon (Postgres serverless) — escolhido por Luiz em 2026-09-16Postgres puro (sem lock-in), escala a zero, branching (um banco por branch/teste/Cliente Zero), point-in-time restore
Multi-tenantRow Level Security por empresa_id (Neon RLS com JWT do provedor de auth)segregação garantida no banco, não só na aplicação
Busca semânticapgvectorIA busca propostas/notas similares no mesmo banco
AppNext.js + TypeScriptfront e API no mesmo projeto, tipagem ponta a ponta
ORM / migraçõesDrizzle ou Prismaschema versionado
HospedagemVerceldefinido em 2026-09-16, ver DEC-004 Hospedagemdeploy automático e previews com branch do Neon
Jobs assíncronosInngest ou Trigger.devpesquisa pública e geração de materiais são lentas
IAAnthropic como padrão, via módulo próprio e Vercel AI SDK (DEC-006 IA Independente de Fornecedor)saída sempre gravada como sugestao até validação
AutenticaçãoNeon Auth (Better Auth gerenciado) — definido em 2026-09-16, ver DEC-002 Autenticaçãográtis até 60 mil MAU; usuários no próprio banco
DocumentosCloudflare R2 (privado, URLs assinadas) — definido em 2026-09-16, ver DEC-003 Armazenamento de Arquivos10 GB grátis/mês, download sem custo
Driver@neondatabase/serverless + Drizzleconexões HTTP/WebSocket ideais para Next.js/serverless
Auditoriatabela audit_log + triggersrastreabilidade exigida pelos gates

Requisitos do documento → como a stack atende

  • Segregação entre empresas → RLS
  • Rastreabilidade / correção humana → audit_log, validado_por, validado_em
  • Fontes e datas das informações → tabela evidencia com origem, fonte_url, coletado_em
  • IA nunca valida → estados sugerido → validado | ajustado | rejeitado; só usuários humanos mudam estado (checado no banco)
  • Preparar ML/scoring futuro sem construir agora → dados estruturados + eventos de etapa com timestamp

Alternativas descartadas

  • MongoDB / Firebase — domínio muito relacional (empresa → lead → oportunidade → proposta → handoff).
  • Supabase — ótimo pacote completo, mas a equipe optou por Neon (branching e Postgres serverless); auth e storage passam a ser peças separadas.
  • No-code como base — limita RLS, auditoria e evolução.
  • Microserviços — complexidade desnecessária para o MVP; começar com monólito modular.

Status

aceita — banco Neon definido por Luiz (2026-09-16). Auth definido: Neon Auth (DEC-002 Autenticação). Arquivos definidos: Cloudflare R2 (DEC-003 Armazenamento de Arquivos). Stack completa — aceita por Luiz em 2026-09-16.

Boas práticas com Neon

  • Branch main = produção · branch dev · branch por feature/teste (inclusive cliente-zero-lcverum)
  • Migrações versionadas (Drizzle Kit) aplicadas primeiro em branch
  • Usar a connection string pooled na aplicação e a direta para migrações
  • Habilitar extensão vector (pgvector) para a busca semântica

Relacionado: Modelo de Dados · Privacidade, Segurança e Ética · Roadmap de Construção