KStream en Kafka: lógica de negocio en movimiento

¿qué es kstream?

kstream (kafka streams API) permite escribir lógica de negocio que consume, transforma y publica eventos en tiempo real, sin levantar clústeres externos.

se compila como una aplicación normal (java) y corre embebida; escala horizontalmente lanzando más instancias. ideal para pipelines livianos y de baja latencia.

KStream: el superpoder oculto de Kafka
idea — lógica de negocio sobre el stream.
idea clave: con kstream escribes transformaciones (filter, map, branch, join, aggregate) que corren de forma distribuida sobre tópicos de kafka. no requiere base de datos para topic→topic y puede mantener estado local (rocksdb) cuando agregas.

vista de alto nivel

una app lee de un tópico, aplica transformaciones y escribe en otro.

operaciones básicas

  • filter / mapValues: limpieza y enriquecimiento.
  • branch: split por condiciones.
  • to: publicación a tópico de salida.
flujo — filtro, mapeo, ramificación y publicación.

agregación con estado (state stores)

para conteos/agrupaciones se usan state stores locales (rocksdb) replicadas vía changelog. habilita groupByKey + aggregate/reduce con tolerancia a fallos.

agregados consistentes con recovery automático.

ejemplo real: “clean purchases”

el diagrama mapea las clases del ejemplo a cada bloque de la topología (main → topology → serde → modelo).

KStream: Clases y cómo se conectan en la topología
cajas: KafkaStreamsApplication, CleanPurchaseTopology, PurchaseSerde, Purchase.

cajas → clases

las cajas corresponden a las siguientes clases: KafkaStreamsApplication, CleanPurchaseTopology, PurchaseSerde y Purchase.

beneficios

  • sin base de datos para transformaciones de paso.
  • escalable: replicas de la app = más throughput.
  • tiempo real: latencia ms-level; exactly-once opcional.
Sin base de datos, escalable, tiempo real
KStream = lógica de negocio en movimiento

recursos adicionales

🎓 Curso oficial y gratuito de Confluent sobre Kafka Streams (KStream y KTable):

Ir al curso de Kafka Streams en Confluent →