Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
3.9 KiB
3.9 KiB
ADR-001: Stack Tecnologico
Fecha: 2025-12-05 Estado: ✅ Aceptado Deciders: Tech Lead, CTO
Contexto
OrbiQuant IA necesita un stack tecnologico que permita:
- Desarrollo rapido del MVP (8 semanas)
- Escalabilidad para crecimiento futuro
- Integracion con APIs de trading y ML
- Experiencia de usuario fluida en web y movil
- Mantenibilidad a largo plazo
El equipo tiene experiencia previa con proyectos similares (Gamilit, TradingAgent) usando TypeScript y Python.
Decision
Frontend
- React 18 + TypeScript 5 como framework principal
- Vite como build tool (HMR rapido, ESM nativo)
- Tailwind CSS para estilos (utility-first, dark mode)
- Zustand para state management (simple, sin boilerplate)
- TanStack Query para data fetching (cache, refetch, optimistic updates)
- Lightweight Charts para graficos de trading (TradingView quality)
Backend API
- Express.js 4.18 + TypeScript para API REST
- Zod para validacion de schemas
- JWT + Passport.js para autenticacion
- PostgreSQL 15 como base de datos principal
- Redis 7 para cache y sesiones
ML Engine
- Python 3.11 + FastAPI para API de predicciones
- XGBoost para modelos de ML
- Pandas/NumPy para procesamiento de datos
Servicios Externos
- Stripe para pagos
- Twilio para SMS/WhatsApp
- Nodemailer para emails
Alternativas Consideradas
Frontend Framework
| Opcion | Pros | Contras | Decision |
|---|---|---|---|
| React | Ecosistema maduro, equipo experimentado | Mas boilerplate que alternativas | ✅ Elegido |
| Next.js | SSR, routing integrado | Complejidad innecesaria para SPA | ❌ |
| Vue.js | Curva de aprendizaje suave | Menos experiencia del equipo | ❌ |
| Svelte | Performance, menos codigo | Ecosistema menos maduro | ❌ |
Backend Framework
| Opcion | Pros | Contras | Decision |
|---|---|---|---|
| Express.js | Flexible, probado, conocido | Sin estructura opinionada | ✅ Elegido |
| NestJS | Estructura, decoradores | Overhead para MVP | ❌ |
| Fastify | Mas rapido que Express | Menos plugins | ❌ |
| Hono | Ultra ligero | Muy nuevo | ❌ |
Base de Datos
| Opcion | Pros | Contras | Decision |
|---|---|---|---|
| PostgreSQL | ACID, JSONB, extensiones | Mas complejo que NoSQL | ✅ Elegido |
| MongoDB | Flexible schema | No ACID por defecto | ❌ |
| MySQL | Popular, simple | Menos features que Postgres | ❌ |
State Management
| Opcion | Pros | Contras | Decision |
|---|---|---|---|
| Zustand | Simple, TypeScript, sin boilerplate | Menos features que Redux | ✅ Elegido |
| Redux Toolkit | Feature completo, devtools | Boilerplate, complejidad | ❌ |
| Jotai | Atomico, simple | Menos popular | ❌ |
| Recoil | De Facebook | Futuro incierto | ❌ |
Consecuencias
Positivas
- Velocidad de desarrollo: El equipo ya conoce el stack
- Type safety: TypeScript en frontend y backend reduce errores
- Reutilizacion: Codigo de Gamilit y TradingAgent reutilizable
- Contratacion: Stack popular, facil encontrar desarrolladores
- Comunidad: Amplia documentacion y soporte
Negativas
- JavaScript fatigue: Muchas dependencias npm a mantener
- Dos lenguajes: TypeScript para API, Python para ML
- Express flexibility: Requiere mas disciplina en estructura
Riesgos
- Dependencias desactualizadas: Mitigacion con Renovate/Dependabot
- Breaking changes en React 19: Mantenerse en v18 hasta estabilizar