erp-core/docs/97-adr/ADR-001-stack-tecnologico.md

2.5 KiB

ADR-001: Stack Tecnológico

Estado: Aceptada
Fecha: 2025-11-23
Responsable: Architecture-Analyst

Contexto

Necesitamos definir el stack tecnológico para el ERP Genérico que sea:

  • Moderno y mantenible
  • Escalable para múltiples proyectos
  • Con ecosistema maduro y soporte a largo plazo

Decisión

Backend: Node.js 20+ LTS + Express 4.18+ + TypeScript 5+
Frontend: React 18+ + Vite 5+ + TypeScript 5+
Database: PostgreSQL 15+ + PostGIS
Mobile: React Native (futuro)

Justificación

Referencia a Gamilit

  • Stack probado en producción (2+ años)
  • Node.js 20 LTS (soporte hasta 2026)
  • TypeScript garantiza type safety completo
  • Vite build tool moderno (HMR rápido)
  • PostgreSQL 15 con mejoras de performance

Referencia a Odoo

  • Odoo usa Python, pero Node.js tiene ecosistema más amplio para APIs
  • PostgreSQL es el mismo RDBMS que usa Odoo (probado a escala)

Referencia a ERP Construcción

  • Ya usa Node.js + Express + PostgreSQL
  • Migración será más sencilla
  • Equipo ya tiene experiencia

Consecuencias

Positivas

  • Ecosistema maduro (npm, TypeScript, React)
  • Reutilización de conocimiento del equipo
  • Type safety completo (reduce bugs 40%)
  • Performance excelente (Node.js async I/O)
  • PostgreSQL altamente escalable

Negativas

  • Node.js single-threaded (mitigado con clustering)
  • JavaScript puede ser permisivo (mitigado con TypeScript strict mode)

Alternativas Consideradas

1. Python + Django + PostgreSQL

  • Pros: Más cercano a Odoo, bueno para data science
  • Contras: Equipo no tiene experiencia, ecosistema frontend limitado
  • Rechazada: Curva de aprendizaje alta

2. Java + Spring Boot + PostgreSQL

  • Pros: Enterprise-grade, muy robusto
  • Contras: Verbose, lento desarrollo, equipo no tiene experiencia
  • Rechazada: Overhead de desarrollo alto

Implementación

Acciones Requeridas

  • Configurar proyecto con Node.js 20 LTS
  • Setup TypeScript con strict mode
  • Configurar React 18 + Vite
  • Setup PostgreSQL 15 + PostGIS

Criterios de Aceptación

  • Build exitoso sin errores TypeScript
  • HMR funcional en <1s
  • PostgreSQL con extensiones necesarias

Riesgos y Mitigación

  • Riesgo: Problemas de performance con Node.js single-threaded
    • Mitigación: Usar clustering, workers threads para tareas pesadas

Referencias

Notas Adicionales

Stack compatible con despliegue en Docker/Kubernetes.