Arquitecturas web
Una arquitectura web define cómo se organiza y comunica un sistema: dónde se ejecuta la lógica, cómo fluyen los datos, cómo se divide el código y cómo se despliegan las distintas partes. Elegir una arquitectura adecuada es una de las decisiones más importantes en el diseño de un sistema, ya que afecta directamente a su escalabilidad, mantenibilidad, rendimiento y coste.
No existe una arquitectura universalmente correcta. La elección depende del tamaño del equipo, la complejidad del dominio, el volumen de tráfico esperado y los recursos disponibles.
Categorías principales
Las arquitecturas web pueden agruparse en tres grandes categorías según dónde se ejecuta la lógica y cómo se genera la interfaz de usuario:
- Orientadas al servidor (backend): definen cómo se organiza y estructura la lógica de negocio y los datos en el lado del servidor.
- Orientadas al cliente (frontend): definen cómo se genera y sirve la interfaz de usuario, y cómo interactúa con el servidor.
- Híbridas y patrones combinados: mezclan conceptos de las anteriores o introducen capas intermedias para resolver problemas específicos.
En la práctica, la mayoría de sistemas reales combina elementos de varias arquitecturas según las necesidades de cada parte del producto.
Evolución histórica
Cómo elegir arquitectura
En general, empieza con una arquitectura simple y evoluciona cuando el problema lo justifique, no antes.
| Factor | Recomendación |
|---|---|
| Equipo pequeño / MVP (Minimum Viable Product) | Monolito o monolito modular |
| Producto maduro con equipos grandes | Microservicios |
| Contenido mayoritariamente estático | JAMstack o SSG |
| Tareas puntuales o por eventos | Serverless |
| Alta concurrencia y desacoplamiento | Event-Driven |
| Frontend rico con buen SEO | SSR moderno |