Skip to main content

Conceptos Iniciales

¿Qué es streaming de eventos?​

Imagina que el streaming de eventos es como el sistema nervioso de tu cuerpo digital. Así como tus nervios captan señales de todo el cuerpo y las envían al cerebro para procesamiento, el streaming de eventos captura información de varias fuentes en tiempo real.

¿Qué es en la práctica?

Es una forma de recolectar, mover y analizar datos mientras suceden:

  • Recolección: Captura información en tiempo real de:
    • Bases de datos
    • Sensores y dispositivos
    • Aplicaciones y sitios web
    • Servicios en la nube
    • etc
  • Transporte: Mueve esos datos inmediatamente (como una cinta transportadora digital)
  • Procesamiento: Analiza o reacciona a esos datos instantáneamente o más tarde.

¿Por qué es importante?

  • Negocios "always-on": Permite que empresas funcionen y respondan 24/7
  • Automatización: Softwares pueden reaccionar a otros softwares automáticamente
  • Decisiones rápidas: Proporciona información en el momento correcto para acción inmediata

Ejemplo práctico:

Cuando usas una app de transporte por aplicación:

  • La app del conductor envía continuamente su ubicación (eventos)
  • El sistema de streaming procesa esos eventos
  • Tu app recibe actualizaciones en tiempo real sobre la ubicación del conductor
  • El sistema puede reaccionar automáticamente (ruteo, precios, etc.)

El streaming de eventos garantiza que todas esas piezas de información fluyan constantemente, permitiendo que todo funcione de forma suave y conectada.

Kafka combina tres recursos principales para implementar casos de uso para streaming de eventos de punta a punta con una única solución probada en batalla:

  • Publicación (producer) y consumo (consumer) de flujos de eventos, incluyendo importación/exportación continua de datos de otros sistemas.
  • Almacenamiento duradero y confiable de flujos de eventos por el tiempo deseado.
  • Procesamiento de flujos de eventos a medida que ocurren o retrospectivamente.

Toda esta funcionalidad es proporcionada de manera distribuida, altamente escalable, elástica, tolerante a fallos y segura.

Ventajas en el uso de kafka​

  • Los datos son publicados solo una vez.
  • Los consumidores interesados en los datos pueden suscribirse y consumir lo que les interesa.
  • Productores y consumidores están desacoplados, pudiendo trabajar en ritmos diferentes.
  • Los consumidores pueden leer datos más de una vez.
  • La indisponibilidad del productor no afecta el proceso.
  • Alta disponibilidad y capacidad con recursos de cluster y particionamiento.

Si kafka fuera escalado verticalmente, surgirían problemas como:

  • Necesidad de interrupción para upgrade.
  • Límite pequeño de escala.
  • Requiere configuraciones complejas.
  • Problemas de incompatibilidad.

¿Qué abordar en este estudio?​

Desarrollo​

Kafka ofrece bibliotecas para la utilización de funciones en prácticamente todos los lenguajes.

Uno de los principales players que desarrollan y hasta ofrecen Kafka como servicio es Confluent.

Vea aquí una lista de bibliotecas y encuentre el lenguaje deseado, incluso con ejemplos de código para uso.

DevOps​

Aquí está el foco principal de nuestro estudio:

  • Comprender la arquitectura de Kafka y provisionarlo de la mejor manera posible.
  • Entender los límites y qué configuración sería ideal para cada escenario.
  • Gestionar tópicos y permisos de acceso a través de RBAC.
  • Disponibilizar las herramientas necesarias para que los desarrolladores consigan hacer su trabajo de forma fácil y objetiva, pudiendo debugar sus payloads de producción y consumo.