# 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 - [x] Configurar proyecto con Node.js 20 LTS - [x] Setup TypeScript con strict mode - [x] Configurar React 18 + Vite - [x] 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 - [Gamilit Stack](../00-analisis-referencias/gamilit/backend-patterns.md) - [Node.js 20 LTS](https://nodejs.org) ## Notas Adicionales Stack compatible con despliegue en Docker/Kubernetes.