87 lines
2.5 KiB
Markdown
87 lines
2.5 KiB
Markdown
# 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.
|