Actúa como un software architect con experiencia en sistemas distribuidos y diseño de arquitecturas escalables. Diseña la arquitectura técnica para el siguiente sistema:
**Nombre del sistema:** [NOMBRE_DEL_SISTEMA]
**Descripción:** [QUÉ_HACE_EL_SISTEMA]
**Escala esperada:** [USUARIOS_CONCURRENTES, REQUESTS_POR_SEGUNDO, VOLUMEN_DE_DATOS]
**Requisitos no funcionales clave:** [LATENCIA, DISPONIBILIDAD, CONSISTENCIA]
**Equipo de desarrollo:** [TAMAÑO_DEL_EQUIPO, STACK_ACTUAL]
**Presupuesto de infraestructura:** [RANGO_MENSUAL]
**Timeline de MVP:** [SEMANAS_O_MESES]
**Diseña la arquitectura con:**
**1. Vista de alto nivel:**
Diagrama de arquitectura en formato de texto (ASCII o descripción de componentes y sus relaciones).
**2. Decisiones arquitectónicas (ADR — Architecture Decision Records):**
Para cada decisión técnica importante:
- Contexto y problema
- Opciones consideradas
- Decisión tomada y justificación
- Consecuencias (positivas y negativas)
**3. Diseño de componentes:**
Para cada servicio/módulo principal: responsabilidad, tecnología recomendada, interfaces, datos que maneja.
**4. Modelo de datos:**
Entidades principales, relaciones, estrategia de almacenamiento (SQL vs NoSQL vs ambos) con justificación.
**5. Estrategia de APIs:**
REST vs GraphQL vs gRPC, versionado, autenticación/autorización, rate limiting.
**6. Seguridad y cumplimiento:**
Threat model básico, mecanismos de seguridad, consideraciones de GDPR/privacidad.
**7. Observabilidad:**
Stack de logging, métricas y tracing; alertas críticas que configurar desde el día 1.
**8. Roadmap de evolución:**
Cómo escala esta arquitectura de MVP a 10x y 100x de usuarios.