Skip to main content

Apache Kafka

kafka

Documentación Oficial

Documentación Confluent

Kafka fue desarrollado por LinkedIn en 2010 y ahora está siendo usado por miles de organizaciones.

80 entre las 100 empresas más grandes utilizan kafka de diferentes formas.

Apache Kafka es el software de procesamiento de stream open source más popular para recolectar, procesar, almacenar y analizar datos a escala.

  • Excelente rendimiento
  • Baja latencia
  • Tolerancia a fallos
  • Alto throughput
  • Capaz de manejar miles de mensajes por segundo
  • Escala horizontalmente (ilimitado) y con servidores de bajo costo
  • Uso de hardware más barato disponible en el mercado y en cloud
  • No requiere parada para upgrades, solo agregar más nodos al cluster

Algunos beneficios comunes son:

  • Creación de pipelines de datos
  • Aprovechamiento de flujos de datos en tiempo real, permitiendo métricas operacionales e integración de datos en innumerables fuentes.

Kafka permite que las organizaciones modernicen sus estrategias de datos con arquitectura de streaming de eventos. Las principales empresas del mundo utilizan Kafka.

Varias clouds ofrecen Kafka como servicio listo para usar, un ejemplo clásico es MSK en AWS y el más famoso que es Confluent Cloud, pero nada impide que tengamos nuestro propio Kafka, después de todo es open source.

Algunos Casos de uso

  • Transición de una arquitectura monolítica a una arquitectura de microservicios.
  • Actúa como un Bus para eventos del sistema.
  • Procesamiento asíncrono pero en tiempo real.
  • Pagos y transacciones financieras en tiempo real, como en bolsas de valores, bancos y aseguradoras.
  • Rastreo y monitoreo de autos, camiones, flotas y envíos en tiempo real, como en logística y en la industria automotriz.
  • Para capturar y analizar continuamente los datos de sensor de dispositivos IoT u otros equipos, como en fábricas y parques eólicos.
  • Recolectar y reaccionar inmediatamente a las interacciones y pedidos del cliente, como en retail, en la industria hotelera y de viajes y en aplicaciones móviles.
  • Monitorear pacientes en atención hospitalaria y predecir cambios en las condiciones para garantizar tratamiento oportuno en emergencias.
  • Conectar, almacenar y disponibilizar datos producidos por diferentes divisiones de una empresa.
  • Servir como base para plataformas de datos, arquitecturas orientadas a eventos y microservicios.