# STACK: Evaluación Tecnológica — [Nombre del Proyecto]

> Investigación del stack tecnológico con análisis de alternativas.
> Esta evaluación sustenta las decisiones en PROYECTO.md y los ADRs correspondientes.
> Autor: [nombre] | Fecha: YYYY-MM-DD

---

## Criterios de evaluación

Los criterios con los que se evalúa cada tecnología, ordenados por importancia:

1. **Madurez y estabilidad**: ¿Tiene historial de producción? ¿Comunidad activa?
2. **Conocimiento del equipo**: ¿El equipo lo conoce o hay curva de aprendizaje?
3. **Ajuste al problema**: ¿La tecnología resuelve bien el tipo de problema del proyecto?
4. **Mantenibilidad**: ¿Será mantenible en 3 años? ¿Hay actualizaciones frecuentes?
5. **Performance**: ¿Cumple los requisitos no funcionales definidos?
6. **Ecosistema**: ¿Tiene las librerías/plugins necesarios disponibles?

---

## Lenguaje de backend

### Opción A: [ej. Python 3.12]

**Pros**:
- [Pro específico al proyecto, no genérico]
- [Pro]
- [Pro]

**Contras**:
- [Contra específico, con impacto estimado]
- [Contra]

**Veredicto**: [Seleccionado / Descartado]
**Razón del veredicto**: [Justificación concisa]

---

### Opción B: [ej. Node.js 20 / TypeScript]

**Pros**:
-
-

**Contras**:
-
-

**Veredicto**: Descartado
**Razón**: [Por qué se prefirió la opción A]

---

**DECISIÓN**: [Opción elegida] — ADR: `docs/adr/NNN-lenguaje-backend.md`

---

## Framework de backend

### Opción A: [ej. FastAPI 0.111]

**Pros**:
- Tipado nativo con Pydantic — validación automática de inputs
- OpenAPI/Swagger generado automáticamente
- Async nativo — ideal para I/O bound (BD, APIs externas)
- [Pro específico al proyecto]

**Contras**:
- [Contra — ej. ecosistema más pequeño que Django para admin/cms]
- [Contra]

**Veredicto**: Seleccionado

---

### Opción B: [ej. Django + DRF]

**Pros**:
- ORM maduro con migraciones robustas
- Admin integrado listo para usar

**Contras**:
- Async más complejo de implementar correctamente
- Más overhead para API-only (sin templates)

**Veredicto**: Descartado
**Razón**: [Justificación]

---

**DECISIÓN**: [Opción elegida] — ADR: `docs/adr/NNN-framework-backend.md`

---

## Base de datos

### Opción A: [ej. PostgreSQL 16]

**Pros**:
- ACID completo
- JSONB para datos semi-estructurados
- Full-text search nativo
- [Pro]

**Contras**:
- [Contra]

**Veredicto**: Seleccionado

---

### Opción B: [ej. MySQL 8]

**Pros**:
-

**Contras**:
-

**Veredicto**: Descartado
**Razón**:

---

### Opción C: [ej. MongoDB] (solo si aplica)

**Pros**:
-

**Contras**:
-

**Veredicto**: Descartado
**Razón**:

---

**DECISIÓN**: [Opción elegida] — ADR: `docs/adr/NNN-base-de-datos.md`

---

## Framework de frontend

### Opción A: [ej. Angular 18]

**Pros**:
- Framework completo con DI, router, forms, HttpClient
- TypeScript first — tipado end-to-end
- Signals para estado reactivo sin RxJS complejo
- [Pro]

**Contras**:
- [Contra — ej. bundle inicial más pesado que React]
- [Contra]

**Veredicto**: Seleccionado

---

### Opción B: [ej. React + Next.js]

**Pros**:
-

**Contras**:
-

**Veredicto**: Descartado
**Razón**:

---

**DECISIÓN**: [Opción elegida] — ADR: `docs/adr/NNN-framework-frontend.md`

---

## Infraestructura y deployment

### Opción A: [ej. Docker + Kubernetes en GCP]

**Pros**:
-
-

**Contras**:
-
-

**Veredicto**: Seleccionado

---

### Opción B: [ej. VMs en Azure con Ansible]

**Pros**:
-

**Contras**:
-

**Veredicto**: Descartado
**Razón**:

---

**DECISIÓN**: [Opción elegida] — ADR: `docs/adr/NNN-infraestructura.md`

---

## Herramientas complementarias

| Herramienta | Propósito | Alternativa considerada | Razón de elección |
|-------------|-----------|------------------------|-------------------|
| [ej. Redis] | Cache + sesiones | [Memcached] | [TTL con estructuras de datos complejas] |
| [ej. Celery] | Tareas async | [RQ, ARQ] | [Madurez, integración con Django/FastAPI] |
| [ej. Alembic] | Migraciones BD | [Django migrations] | [Necesario con FastAPI] |
| [ej. Pytest] | Testing Python | [unittest] | [Fixtures, plugins, ecosistema] |
| [ej. Sentry] | Error tracking | [Datadog, Rollbar] | [Plan gratuito suficiente, integración fácil] |

---

## Resumen de decisiones

| Capa | Decisión | Confianza | ADR |
|------|----------|-----------|-----|
| Lenguaje backend | [tecnología] | Alta/Media/Baja | ADR-NNN |
| Framework backend | [tecnología] | | ADR-NNN |
| Base de datos | [tecnología] | | ADR-NNN |
| Frontend | [tecnología] | | ADR-NNN |
| Infraestructura | [tecnología] | | ADR-NNN |

**Confianza global en el stack**: [Alta/Media] — [justificación de una línea]
