| id |
title |
type |
project |
version |
updated_date |
| ADR-001-stack-tecnologico |
Stack Tecnologico |
Documentation |
trading-platform |
1.0.0 |
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:
- 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
Referencias