¿Qué es?

En un principio, Apache Kafka consistía en un sistema de intermediación de mensajes basado en el modelo publicador/suscriptor en el que varios productores y suscriptores podían  leer y escribir. Con el tiempo, y la evolución del producto, se ha convertido en toda una plataforma de streaming de eventos distribuida. Además también podemos considerarla una herramienta complementaria a las bases de datos, proporcionando garantías ACID.

Apache Kafka surgió en la empresa LinkedIn como una cola de mensajería para interconectar varios sistemas de forma escalable. En el año 2011 el proyecto entró en la incubadora de la Apache Software Foundation, en la que se graduó como top-level project en el año 2012. Apache Kafka está escrito en Java y Scala. Es de código abierto (open source), y se distribuye con licencia Apache 2.0. En la actualidad, cuenta con más de 700 contribuidores y más de 40 committers.

Funcionalidades

Kafka permite publicar y suscribirse a flujos de eventos y permite almacenar estos eventos de una forma tolerante a fallos, escalable, persistente y con capacidad de replicación.

Además de almacenar estos eventos, la funcionalidad se extiende con la capacidad de procesarlos en tiempo real, a medida que se reciben de múltiples fuentes de datos. Kafka se integra con numerosas tecnologías, de esta forma, permite construir flujos de datos en tiempo real entre distintos sistemas y aplicaciones de manera desacoplada.

Por estas razones, Apache Kafka es muy popular en la arquitectura Big Data de muchas empresas en la actualidad. Debido a su arquitectura, consigue obtener una baja latencia, escalabilidad horizontal y absorber los picos de carga que pueden ocurrir en el sistema.

¿Por qué elegir Kafka?

Entre sus principales características podemos destacar:

  • Permitir la publicación y suscripción de streams de registros. En este aspecto es parecido a un sistema de mensajes basado en colas.

  • Permitir guardar streams de registros con tolerancia a fallos.

  • Permitir procesar los streams de registros en el momento en que se producen.

  • Proporciona capacidades de copia de seguridad y escalabilidad de alto rendimiento, persistente, de copia múltiple.

Ventajas de Kafka

Algunas ventajas del producto Kafka:

  • Permite desacoplar aplicaciones entre sí (útil en arquitecturas de microservicios).

  • Sistema escalable horizontalmente, tolerante a fallos y con baja latencia (Big Data).

  • Absorción de picos de carga que pueden ocurrir en el sistema.

  • Permite construir aplicaciones que reaccionan a eventos en tiempo real.

  • Referencia en la industria, lo usan las empresas más grandes del mundo.

  • Garantías de entrega de mensajes exactly-once (exactamente una vez).

  • Transacciones a partir de Kafka 0.11.


Si estás interesado en implantar un sistema de BA o ya tienes Kafka en tu empresa, y necesitas una consultoría y desarrollo