MÓDULO 3 · ARQUITECTURA DE SISTEMAS CONVERSACIONALES · LECCIÓN 1.3 · 35 MIN

La Ley de los Trade-offs

Nivel intermedio — internalizar que toda decisión arquitectónica implica sacrificar algo, y aplicar un framework para evaluarlo sistemáticamente.

Idea central En arquitectura de software no existe "lo mejor" sin contexto. Cada beneficio arquitectónico tiene un coste asociado — el trabajo del arquitecto es hacer ese trade-off explícito y elegir conscientemente qué optimizar.

El problema

Los arquitectos novatos buscan soluciones óptimas universales: "la mejor" tecnología, "el mejor" patrón. Pero esa pregunta está mal planteada.

Situación típica: el equipo debate PostgreSQL vs. MongoDB. Alguien encuentra un artículo que dice que MongoDB escala mejor; otro encuentra uno que dice que PostgreSQL es más confiable. El debate se vuelve religioso porque ambos buscan "la mejor" base de datos, ignorando que la respuesta real es depende de qué estés optimizando. // sin trade-off explícito, no hay forma de zanjar el debate

Si no articulas qué sacrificaste y por qué, tomas decisiones por hype o preferencia personal — y no puedes defenderlas cuando alguien las cuestiona.

Las dos leyes

Formuladas por Mark Richards y Neal Ford:

"Everything in software architecture is a trade-off."— Primera Ley
"Why is more important than how."— Segunda Ley

La primera dice que no hay decisión sin coste. La segunda dice que el motivo de negocio detrás de una decisión importa más que el mecanismo técnico elegido para ejecutarla.

Trade-offs universales en software

Si optimizas...Probablemente sacrificas...
Velocidad de desarrolloRendimiento en runtime
RendimientoMantenibilidad del código
FlexibilidadSimplicidad
Consistencia de datosDisponibilidad
EscalabilidadCoste de infraestructura
SeguridadExperiencia de usuario
Time-to-marketCalidad técnica

Framework RADAR

Cinco preguntas para evaluar trade-offs sin caer en el debate religioso:

R
Requerimientos — ¿qué necesita realmente el negocio?
A
Alternativas — ¿qué opciones existen? (mínimo 3)
D
Diferencias — ¿en qué se diferencian las opciones?
A
Análisis — ¿cuál encaja mejor con los requerimientos?
R
Riesgos — ¿qué puede salir mal con la opción elegida?

Principio "Least Worst": no busques la mejor solución — busca la menos mala para tu contexto específico. Toda opción tiene problemas; elige los problemas que puedes manejar.

Cuándo aplicarlo

Análisis formal de trade-offs si...Decisión rápida es suficiente si...
La decisión es costosa de revertir (>2 semanas)Es fácilmente reversible (<2 días)
Afecta a múltiples equipos o sistemasAfecta solo tu código local
Tiene implicaciones de coste significativasEl coste es trivial
El equipo tiene opiniones divididasHay consenso claro
RADAR no es determinista

Dos arquitectos aplicando bien el mismo RADAR pueden llegar a conclusiones distintas si priorizan atributos de calidad distintos — y eso es correcto, no un fallo del framework. La Segunda Ley lo dice: el "por qué" de negocio decide, no el mecanismo. RADAR ordena el análisis; no elimina el juicio.

Practica: comunicación entre servicios

Tu equipo debe decidir cómo comunicar los servicios de un e-commerce (Catálogo, Carrito, Pedidos, Pagos, Inventario). Opciones: REST síncrono, gRPC síncrono, o mensajería asíncrona con RabbitMQ.

Aplica RADAR y documenta tu decisión en formato ADR: contexto, alternativas consideradas, decisión, y consecuencias (qué ganas, qué sacrificas).