99 lines
3.0 KiB
Markdown
99 lines
3.0 KiB
Markdown
# ADR-001: Stack Tecnologico
|
|
|
|
**Estado:** Aceptada
|
|
**Fecha:** 2025-11-24
|
|
**Responsable:** Architecture-Analyst
|
|
**Proyecto:** ERP Construccion
|
|
|
|
## Contexto
|
|
|
|
Necesitamos definir el stack tecnologico para el ERP de Construccion que sea:
|
|
- Moderno y mantenible
|
|
- Compatible con ERP Generico para reutilizacion
|
|
- Con ecosistema maduro y soporte a largo plazo
|
|
- Adecuado para la industria de construccion e INFONAVIT
|
|
|
|
## Decision
|
|
|
|
**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 - para asistencias GPS)
|
|
|
|
## Justificacion
|
|
|
|
### Referencia a Gamilit
|
|
- Stack probado en produccion (2+ anos)
|
|
- Node.js 20 LTS (soporte hasta 2026)
|
|
- TypeScript garantiza type safety completo
|
|
- Vite build tool moderno (HMR rapido)
|
|
- PostgreSQL 15 con mejoras de performance
|
|
|
|
### Referencia a Odoo
|
|
- PostgreSQL es el mismo RDBMS que usa Odoo (probado a escala)
|
|
- Patrones de contabilidad y multi-tenancy adoptados
|
|
|
|
### Alineacion con ERP Generico
|
|
- Mismo stack permite reutilizacion de componentes (61%)
|
|
- Equipo con experiencia en este stack
|
|
- Migracion sera mas sencilla
|
|
|
|
### Especifico para Construccion
|
|
- PostGIS para ubicaciones de obras y GPS
|
|
- Node.js async ideal para procesamiento de estimaciones
|
|
- React Native para apps de asistencia en campo
|
|
|
|
## Consecuencias
|
|
|
|
### Positivas
|
|
- Ecosistema maduro (npm, TypeScript, React)
|
|
- Reutilizacion de conocimiento del equipo
|
|
- Type safety completo (reduce bugs 40%)
|
|
- Performance excelente (Node.js async I/O)
|
|
- PostgreSQL altamente escalable
|
|
- PostGIS para georreferenciacion de proyectos
|
|
|
|
### Negativas
|
|
- Node.js single-threaded (mitigado con clustering)
|
|
- JavaScript puede ser permisivo (mitigado con TypeScript strict mode)
|
|
|
|
## Alternativas Consideradas
|
|
|
|
**1. Python + Django + PostgreSQL**
|
|
- Pros: Mas cercano a Odoo
|
|
- Contras: Equipo no tiene experiencia, no compatible con ERP Generico
|
|
- Rechazada: No permite reutilizacion
|
|
|
|
**2. Java + Spring Boot + PostgreSQL**
|
|
- Pros: Enterprise-grade, muy robusto
|
|
- Contras: No compatible con ERP Generico, curva aprendizaje alta
|
|
- Rechazada: Overhead de desarrollo alto
|
|
|
|
## Implementacion
|
|
|
|
### 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
|
|
- [ ] Configurar React Native para app movil
|
|
|
|
### Criterios de Aceptacion
|
|
- Build exitoso sin errores TypeScript
|
|
- HMR funcional en <1s
|
|
- PostgreSQL con PostGIS funcional
|
|
- Compatibilidad con ERP Generico validada
|
|
|
|
### Riesgos y Mitigacion
|
|
- **Riesgo:** Problemas de performance con Node.js single-threaded
|
|
- **Mitigacion:** Usar clustering, workers threads para tareas pesadas
|
|
|
|
## Referencias
|
|
- [ERP Generico ADR-001](../../erp-generic/docs/adr/ADR-001-stack-tecnologico.md)
|
|
- [Gamilit Stack](../../shared/reference/gamilit/backend-patterns.md)
|
|
- [Node.js 20 LTS](https://nodejs.org)
|
|
|
|
## Notas Adicionales
|
|
Stack compatible con despliegue en Docker/Kubernetes.
|
|
Compatible con integraciones INFONAVIT via API REST.
|