ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
129 lines
4.0 KiB
Markdown
129 lines
4.0 KiB
Markdown
---
|
|
id: "ADR-001-stack-tecnologico"
|
|
title: "Stack Tecnologico"
|
|
type: "Documentation"
|
|
project: "trading-platform"
|
|
version: "1.0.0"
|
|
updated_date: "2026-01-04"
|
|
---
|
|
|
|
# ADR-001: Stack Tecnologico
|
|
|
|
**Fecha:** 2025-12-05
|
|
**Estado:** ✅ Aceptado
|
|
**Deciders:** Tech Lead, CTO
|
|
|
|
---
|
|
|
|
## Contexto
|
|
|
|
Trading Platform necesita un stack tecnologico que permita:
|
|
1. Desarrollo rapido del MVP (8 semanas)
|
|
2. Escalabilidad para crecimiento futuro
|
|
3. Integracion con APIs de trading y ML
|
|
4. Experiencia de usuario fluida en web y movil
|
|
5. 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
|
|
|
|
1. **Velocidad de desarrollo**: El equipo ya conoce el stack
|
|
2. **Type safety**: TypeScript en frontend y backend reduce errores
|
|
3. **Reutilizacion**: Codigo de Gamilit y TradingAgent reutilizable
|
|
4. **Contratacion**: Stack popular, facil encontrar desarrolladores
|
|
5. **Comunidad**: Amplia documentacion y soporte
|
|
|
|
### Negativas
|
|
|
|
1. **JavaScript fatigue**: Muchas dependencias npm a mantener
|
|
2. **Dos lenguajes**: TypeScript para API, Python para ML
|
|
3. **Express flexibility**: Requiere mas disciplina en estructura
|
|
|
|
### Riesgos
|
|
|
|
1. **Dependencias desactualizadas**: Mitigacion con Renovate/Dependabot
|
|
2. **Breaking changes en React 19**: Mantenerse en v18 hasta estabilizar
|
|
|
|
---
|
|
|
|
## Referencias
|
|
|
|
- [React 18 Release Notes](https://react.dev/blog/2022/03/29/react-v18)
|
|
- [Zustand Documentation](https://zustand-demo.pmnd.rs/)
|
|
- [TanStack Query](https://tanstack.com/query)
|
|
- [Express.js Best Practices](https://expressjs.com/en/advanced/best-practice-security.html)
|
|
- [PostgreSQL vs MySQL](https://www.postgresql.org/about/)
|