Kafka Streams es una biblioteca utilizada para el procesamiento y transformación de datos utilizando Apache Kafka. Es posible utilizarlo para múltiples casos, veamos algunos ejemplos:

  • Transformación de datos
  • Detección de patrones
  • Detección de fraudes
  • Monitoreo y alertas
  • Migración de datos

Para utilizar Kafka streams solo programaremos una aplicación común Java, no es necesario crear un cluster separado a diferencia de Spark, Storm, Apache Flink, etc. Al utilizar Kafka tendrá todos sus beneficios y el procesamiento será de uno a uno, esto significa que no procesaremos multiples mensajes al mismo tiempo.

Arquitectura de Kafka

Kafka streams es un jar que se instala en un cluster Kafka, este leerá información desde y hacia kafka como se muestra en la siguiente imagen:

kafka streams arq

Para dar los primeros pasos con Apache Kafka les recomendamos el siguiente post Primeros pasos con Apache Kafka en Español !.

Terminología

A continuación se muestra la terminología a utilizar a lo largo de los posts:

  • Stream : Es una secuencia de registros inmutable, ordenado y tolerante a fallas.
  • Stream processor: Es un nodo de procesamiento.
  • Topology: Una topología es un grafo compuesto por streams y stream processors

streams-processors-topology

  • Source processor: Es un processor especial que lee datos directamente de un kafka topic, no hay nadie antes de el y no hace modificaciones a los datos.
  •  Sink processor:Es un processor que no tiene hijos, manda un stream directamente a un Kafka topic.

En este post vimos los primeros pasos y la terminología de Kafka streams, en siguientes posts explicaremos en detalle su funcionamiento, síguenos en nuestras redes sociales para enterarte sobre nuevo contenido https://www.facebook.com/devs4j/ y https://twitter.com/devs4j.

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com