Dónde vive la lógica: el péndulo cliente–servidor
"¿Esto lo hace el cliente o el servidor?" no tiene una respuesta fija: ha sido distinta en cada época, provocada por una tecnología (el PC, el navegador, AJAX, el móvil, la nube, los modelos en el dispositivo). Lo fijo son los criterios con los que se decide, y la nube ha cambiado el peso de varios de ellos.
1El péndulo, en cincuenta años
| Época | Dónde vivía la lógica |
|---|---|
| 1960-70 | Mainframe y terminal tonto — toda la lógica en el centro |
| 1980 | PC — toda la lógica en el escritorio |
| 1990 | Cliente/servidor clásico — cliente grueso + servidor de BD |
| 1995-2005 | Web 1.0 — navegador tonto, servidor genera HTML |
| 2005-2015 | AJAX y SPA — la app vuelve al navegador |
| 2008- | Móvil — cliente grueso otra vez |
| 2010- | Nube y serverless — backend fragmentado y centralizado |
| 2016- | SSR, edge functions, RSC — el frontend vuelve en parte al servidor |
| 2019- | Local-first — la fuente de verdad vuelve al cliente |
| 2023- | IA en el dispositivo — cómputo pesado en el cliente por privacidad y latencia |
El péndulo no vuelve nunca al mismo sitio: cada vuelta conserva algo de la anterior.
2Los criterios que no cambian
| Criterio | Empuja hacia servidor/nube | Empuja hacia cliente/borde |
|---|---|---|
| Seguridad | Autorización, precios, validación definitiva, secretos | — (nada se confía al cliente) |
| Consistencia | Un único estado verdadero (stock, saldo) | Cuando no importa (borradores) |
| Latencia percibida | — | UI optimista, validación de formato |
| Disponibilidad sin red | — | Túnel, planta, campo |
| Coste de cómputo | Cómputo pesado (entrenar, analizar millones de filas) | Cada ciclo del usuario es gratis para la empresa |
| Privacidad | Datos que la empresa debe centralizar y proteger | Lo que es mejor que no llegue (biometría, salud) |
La fila de seguridad es absoluta; el resto son equilibrios. Latencia, disponibilidad sin red y privacidad son las que la nube no resuelve — por eso el cliente grueso, el móvil y el edge siguen existiendo.
3Las ventajas de la nube en sistemas conectados
Un "sistema conectado" es cualquier conjunto de clientes que comparten estado a través de la red.
- Punto de encuentro global: todos los clientes hablan con el mismo backend, estén donde estén.
- Elasticidad: el backend crece con los clientes conectados y se paga por lo usado.
- Estado compartido consistente: un único lugar donde vive la verdad.
- Servicios gestionados para lo difícil: mensajería, tiempo real, autenticación, sin construirlos.
- Ingesta y análisis centralizados: los datos de todos los clientes juntos.
4Patrones con nombre
| Patrón | Dónde vive la lógica |
|---|---|
| Cliente ligero | Casi todo en servidor; el cliente presenta |
| Cliente grueso | Mucha lógica y datos en el cliente |
| SPA + API | Interfaz en el navegador; servidor expone datos y reglas |
| SSR / híbrido | Render inicial en servidor, interacción en cliente |
| BFF | Un backend intermedio por tipo de cliente |
| Offline-first | Datos y lógica principal en el cliente; el servidor sincroniza |
| Autoridad del servidor con predicción en cliente | El cliente simula al instante; el servidor tiene la última palabra |
El último patrón resume el módulo: el cliente hace que la experiencia sea inmediata, el servidor hace que nadie haga trampa. La misma regla se evalúa dos veces, en dos sitios, con dos propósitos.
5Caso trabajado: un asistente con LLM dentro de una app
| Función | Dónde | Por qué |
|---|---|---|
| Construir el prompt con datos del usuario | Servidor | Hay que controlar y filtrar lo que se le da al modelo |
| Clave de API del proveedor de LLM | Servidor, en gestor de secretos | En el cliente sería pública en minutos |
| Mostrar la respuesta en streaming | Cliente | Experiencia |
| Modelo pequeño para autocompletar en local | Cliente | Latencia cero, privacidad, gratis, sin red |
En los casos trabajados del apunte original (TPV de tienda, máquina industrial) la respuesta correcta no es "nube" ni "cliente": es una tabla, función por función — la misma tabla que pide la sección 5 del informe del proyecto.
6Para debatir en clase
- App de reservas de pistas de pádel: ¿dónde se comprueba que la pista está libre? ¿Qué pasa si dos reservan a la vez sin red?
- Si el cómputo del cliente es gratis para la empresa, ¿por qué no hacer todo en el cliente? Las tres razones más fuertes en contra.
- Una app local-first de notas: ¿qué ventajas de la nube conserva? ¿Es "un sistema conectado"?
- Tomar una app de otro módulo del ciclo y hacer su tabla de "dónde vive cada lógica".
✓Autoevaluación — puntos que debes dominar
Adaptado de 05-donde-vive-la-logica.md.