trading-platform/docs/97-adr/ADR-001-stack-tecnologico.md
rckrdmrd c1b5081208 feat(ml): Complete FASE 11 - BTCUSD update and comprehensive documentation alignment
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>
2026-01-07 09:31:29 -06:00

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/)