Apache Kafka es una plataforma de paso de mensajes en near real time, empleada para comunicar instantáneamente distintas aplicaciones conectadas a él, al estilo de un gran bus de datos común por el que circula la información de una empresa para ser procesada y utilizada por distintos departamentos de maneras muy diferentes. Es capaz de procesar billones de mensajes al día en near real time.
Podríamos definir su arquitectura como un sistema de logs distribuido. Kafka sólo tiene una tarea: escribir mensajes en forma de log cumpliendo siempre sus dos grandes razones de ser: rapidez y fiabilidad en la entrega y proceso de mensajes. Sobre esta idea, se desarrolla un ecosistema en forma de APIs y clientes caracterizado por su ligereza y sencillez que permiten el escalado dinámico y elástico de la aplicación, que no depende necesariamente del escalado del propio cluster de máquinas en las que se está ejecutando Kafka. Estos son los motivos por los que el ecosistema Kafka se ha convertido en el estándar de facto para numerosos casos de uso alrededor de las arquitecturas de dato que van desde el paso de mensajes en tiempo real para comunicar sistemas heterogéneos, hasta el “sistema nervioso central” del dato de una compañía, que permite que todos los departamentos vean siempre dato actual y habilita estrategias de gobierno de datos. Incluso se aplica para la comunicación entre microservicios en aplicaciones descentralizadas. En definitiva, Kafka facilita la implementación de cualquier solución orientada a Eventos (EDA o Event Driven Architecture).
En el máster revisaremos la Arquitectura Kafka y su ecosistema, profundizando en temas como el escalado o las distintas estrategias de despliegue, pero sobre todo en sus distintas APIs y abstracciones (desde consumer producer a KSQLDB pasando por Kafka Connect), el desarrollo de aplicaciones clientes para el streaming de datos en los lenguajes más usados (Python, Java/Scala) y el diseño de pipelines de datos eficientes y sencillas en (near) tiempo real.
Contenidos:
- Arquitectura y Conceptos Básicos:
- KRAFT (bye bye Zookeeper).
- Kafka Admin API.
- El LOG distribuido y sus conceptos básicos.
- Producer/Consumer API:
- Conceptos básicos Producer.
- Conceptos básicos Kafka Consumer.
- Console Producer/Consumer.
- Semánticas de entrega.
- Java/Scala/Python Producer/Consumer.
- Kafka Connect.
- Kstreams.
- KSQL.
- Pipelines de Datos pensadas en tiempo real.