Normalmente cuando consumimos datos desde alguna aplicación hacia un servicio como una API por ejemplo, es común hacerlo por lotes, es decir:

  1. Haces la petición y quedas a la espera.
  2. El servidor procesa la petición y responde acorde a la solicitud.
  3. El cliente actúa dependiendo de la respuesta del servidor.

Pero este tipo de manejo de data no funciona para todos los casos de uso, imagina que intentas pedirle algo muy complejo a ChatGPT donde la respuesta es MUUUY larga y entonces tengas que esperar muchos minutos sin poder ver un resultado.

No sería una buena experiencia para el usuario sin duda alguna.

Entonces hablemos del Streaming de datos. Esta tecnología es utilizada justamente para optimizar el procesamiento y la transferencia de datos en tiempo real entre el cliente y el servidor.

Es utilizada por aplicaciones tipo Netflix, Youtube, pero también ChatGPT.

Si te preguntabas cómo ChatGPT hacía para parecer que estaba escribiendo, la respuesta es el Streaming de datos.

En realidad este efecto es causado porque a medida que la AI va generando el texto, estos bloques son enviados en tiempo real al cliente (al navegador).

¿Cómo funciona? Bueno en la teoría es sencillo:

  • Los datos se envían en tamaños reducidos (kilobytes por ejemplo) de forma continua.
  • Estos se procesan inmediatamente a medida que llegan al cliente.

Piénsalo como un río que fluye (Streaming de datos) frente a un lago (Lotes de datos). En el streaming, los datos se procesan en movimiento, de forma muy parecida a como observarías las cosas fluyendo en un río.

Si quieres implementar esta tecnología vas a necesitar herramientas como Apache Kafka, Amazon Kinesis, ó Google Pub/Sub que son plataformas que trabajan con este tipo de procesamiento de datos.

Pero como toda tecnología, esta tiene algunos retos que hay que resolver:

  • Hay que manejar el alto volumen y velocidad de los datos.
  • Hay que garantizar que los datos son precisos y están en el formato correcto.
  • El sistema debe ser auto-escalable para poder ampliarse a medida que crece el volumen de datos.

Algunos casos de uso que te vas a encontrar en el mundo real pueden ser en herramientas de analíticas, sensores de IoT (Internet de las cosas) y obviamente el plataformas de video.

Así es como Netflix o Youtube optimizan la conexión mientras estás consumiendo contenido, no es necesario que se descargue el video completo para que puedas comenzar a verlo porque este se va descargando por partes a medida que lo vas necesitando.

Y ahora con la llegada de las herramientas de inteligencias artificiales pues más que nunca va a ser necesario gestionar este tipo de procesamiento de datos.

Para finalizar

El streaming de datos está transformando la forma en que manejamos grandes volúmenes de datos en tiempo real.

Todos estos sectores de los que te hablé la convierten en una tecnología esencial de aprender en este mundo impulsado por los datos.

3 Noticias para ti

Nos vemos en la edición #15

Espero que hayas aprendido algo nuevo

Recuerda que si quieres hablar de algo en particular puedes sugerir el tema respondiendo este correo.

Hasta pronto 👊🏼Nicolás Leal

#14 Streaming de Datos

El streaming de datos, a diferencia del procesamiento de datos por lotes, permite la transferencia y el procesamiento de estos en tiempo real, optimizando la interacción entre cliente y servidor.