La velocidad es una de las pocas características del producto que el usuario siente antes de poder explicar. Nadie abre un sitio web y piensa "la latencia aquí es alta". La gente simplemente siente que algo va lento, se impacientan y se van. La latencia es invisible hasta que se convierte en abandono.
Para aquellos que empiezan a profundizar en el rendimiento web, la primera confusión es tratar la latencia como sinónimo de "Internet lento". No lo es. La latencia es el tiempo entre una acción y la respuesta a esa acción, y se construye por una cadena de factores que van mucho más allá de la conexión del usuario. Comprender esta cadena es lo que separa a quienes inician las optimizaciones de quienes resuelven el problema desde el origen.
Este texto es una base. El objetivo no es entregar recetas, sino brindarle el vocabulario y el modelo mental para razonar claramente sobre la latencia, porque sin entender de dónde viene, cualquier optimización se convierte en prueba y error.
¿Qué es la latencia, de hecho?
La latencia es tiempo de espera. Cuando alguien hace clic en un botón y es necesario que suceda algo en el servidor, hay un retraso entre el clic y la respuesta visible. Este intervalo es la latencia percibida y es la suma de varios tiempos más pequeños.
Es útil separar la latencia del rendimiento, dos conceptos que a menudo se confunden. La latencia es el tiempo que tarda una sola solicitud. El rendimiento es la cantidad de solicitudes que el sistema puede manejar por segundo. Puedes tener un sistema de alto rendimiento y alta latencia al mismo tiempo, sirve a mucha gente, pero todos esperan. Para el usuario individual, lo que importa es la latencia. Para la operación ambos son importantes.
La tesis central de este texto: la latencia es una suma de pasos, y solo mejoras lo que puedes ver. Cualquiera que trate la latencia como un número único y opaco se quedará atrapado en optimizaciones genéricas. Quien rompe la cadena descubre dónde se pierde realmente el tiempo.
¿De dónde viene la latencia?
Imagine la ruta de una solicitud típica, desde el clic del usuario hasta la respuesta en la pantalla. Cada tramo de este camino suma tiempo.
Hay distancia física. La información viaja a través de la red a una velocidad finita y la distancia entre el usuario y el servidor es importante. Un servidor en otro continente añade decenas de milisegundos sólo para el viaje de ida y vuelta, antes de cualquier procesamiento. Para un público brasileño atendido por infraestructura distante, esto es una parte real del problema.
Está el establecimiento de la conexión. Abrir una conexión segura implica una negociación inicial entre el cliente y el servidor que cuesta viajes de ida y vuelta a través de la red. Las conexiones reutilizadas pagan este costo una vez; Las nuevas conexiones pagan siempre.
Hay procesamiento en el servidor. El tiempo que le toma a la aplicación comprender la solicitud, consultar bases de datos, ejecutar la lógica de negocios y ensamblar la respuesta. Aquí es donde reside gran parte de la latencia que los equipos pueden controlar directamente.
Hay consulta de datos. La base de datos suele ser el mayor villano oculto. Una consulta mal indexada, una llamada que desencadena docenas de otras consultas seguidas, un servicio externo lento en la cadena, cualquiera de estos convierte una respuesta rápida en una espera.
Y hay renderizado en el navegador. Incluso después de que llegue la respuesta, el navegador debe procesarla y dibujar la pantalla. JavaScript pesado, recursos de bloqueo e imágenes grandes agregan tiempo en la última sección, justo donde mira el usuario.
Por qué esto es importante para las empresas
Es tentador ver la latencia únicamente como una cuestión de ingeniería. Es un error de gestión. La latencia tiene un efecto directo sobre la conversión, la retención y la percepción de calidad. Las aplicaciones lentas se abandonan y el abandono no pide permiso.
Pensemos en un portal de servicios públicos. El ciudadano que intenta expedir un duplicado, agendar una cita o consultar una prestación no tiene una paciencia infinita, y muchas veces accede desde un celular con una conexión modesta. Si cada paso lleva tiempo, la tasa de finalización disminuye, el servicio presencial aumenta y se refuerza la percepción de que "el sistema gubernamental no funciona". La latencia, en este caso, es una barrera para acceder a un derecho.
En los productos privados, la lógica es la misma bajo otro nombre: cada segundo de espera es dinero que sale por la puerta. Es por eso que la latencia no debería ser una preocupación que sólo aparezca cuando el usuario se queja. Debería ser un indicador monitoreado como se monitorearía los ingresos.
Medir antes de optimizar
El error más común que cometen quienes aprenden sobre latencia es comenzar a optimizar antes de medir. Agrega caché aquí, reescribe una función allí, todo por intuición, y el resultado es un esfuerzo disperso sin un impacto claro.
La disciplina correcta es todo lo contrario. Primero mida dónde se pierde el tiempo y luego ataque el mayor cuello de botella. La latencia suele seguir una distribución desigual: un solo paso puede representar la mayor parte del tiempo total. Optimizar a otros es un desperdicio.
También vale la pena mirar no sólo el promedio, sino también los peores casos. La latencia promedio puede parecer excelente, mientras que una fracción importante de usuarios experimenta largas esperas. Son precisamente estos usuarios, los del percentil malo, los que abandonan y se quejan. Una buena media puede esconder una pésima experiencia para muchas personas.
La trampa de optimizar lo invisible
Existe un riesgo al otro lado del entusiasmo por el desempeño: optimizar lo que no importa. Los equipos emocionados pasan semanas ahorrando milisegundos en una pieza que el usuario nunca nota, mientras que la espera más grande permanece intacta.
El rendimiento es siempre una cuestión de proporción. Reducir un paso que representa poco del tiempo total no cambia la experiencia. La madurez consiste en resistir la tentación de una optimización elegante y preguntarse, en primer lugar, si mueve el número que siente el usuario.
Otro error es tratar la latencia como un problema resuelto después de una ronda de mejoras. Los sistemas evolucionan, los datos crecen, las nuevas funciones añaden llamadas. La latencia vuelve a aumentar si nadie está mirando. Es un indicador a monitorear continuamente, no una tarea a tachar de la lista.
Cierre
La latencia es el impuesto invisible que paga toda aplicación web, y el usuario es quien siente la factura. Comprender sus fundamentos, que es una suma de pasos, que se mide antes de optimizar, que importa tanto para el negocio como para la ingeniería, es el primer paso para construir productos que la gente no abandone por impaciencia.
La velocidad no es un lujo ni un detalle técnico. Es parte de la promesa que hace su producto. Quienes tratan el rendimiento como una decisión de producto, y no como un ajuste de último momento, ofrecen experiencias que respetan el tiempo de quienes están al otro lado de la pantalla.
Si está empezando a tomar más en serio el rendimiento de su aplicación, vale la pena hacerlo con la medición en la mano desde el principio. Hay otros artículos aquí en el blog sobre arquitectura y escalabilidad que profundizan en el tema.
Lea también
- Reducir la latencia en aplicaciones web: una guía rápida para atacar los cuellos de botella adecuados
- Aplicaciones Web Progresivas para principiantes: ejemplos y optimización sin complicar las cosas
- PWA: qué es y cómo cuidar el rendimiento en el día a día
- Pruebas automatizadas: arquitectura y fundamentos
- Edge Computing: por qué el procesamiento distribuido redefinirá su arquitectura
- Arquitectura de Edge Computing: Estrategias para el procesamiento distribuido
