Event Sourcing using Apache Kafka

Lambdaloopers
2 min readNov 4, 2021

¿Por qué usar colas? ¿Cuándo utilizarlas? y
¿Qué trade off tenemos que asumir?

Introducción

Antes que llegara la pandemia organizábamos meetups técnicos para discutir tecnologías y sus implementaciones. En este caso analizamos el concepto de event sourcing usando Apache Kafka, aquí os dejamos un resumen.

Meetup

El meetup se organizó en tres partes:

  1. Inicialmente se vieron las debilidades de MySQL/PostgreSQL, la dificultad de mantener la consistencia entre la master db y las caches así como las dificultades de escalabilidad cuando se quiere adoptar una estrategia de microservicios con una arquitectura no adaptada para ello.
  2. Explicamos cómo las colas nos pueden ayudar a solventar los problemas comentados. Hicimos una breve explicación de las partes principales, cómo funciona la tecnología, una introducción al event sourcing, sus pros y cons.
  3. Finalmente hubo un apartado de insights que abrió el debate y profundización por parte de todos los participantes del meetup.

Insights

Algunos de los insights que se trataron fueron:

  • La mayor complejidad de escribir una funcionalidad cuando se tiene esta estructura.
  • Como el cliente de la API debe gestionar la consistencia eventual de los datos.
  • Como se incrementan los tiempos (horas) de los deploys.
  • El hecho de como se gestionaran y quedarán registrados los errores para siempre en el sistema.

Conclusiones

Algunas conclusiones interesantes que se extrajeron fueron:

  • Apache Kafka está ganando popularidad, y ya se considera una tecnología suficientemente madura como para usar en producción en muchas aplicaciones.
  • El desarrollo de aplicaciones usando arquitecturas basadas en event sourcing se ha simplificado gracias a Kafka.
  • Tener que razonar acerca de la consistencia eventual sigue siendo un reto para la mayoría de las aplicaciones.

Adrià Batlle — CEO at LambdaLoopers

--

--

Lambdaloopers

We are the team that thinks, works and aims to ensure you a successful digital journey. 👨🏻‍💻👩🏻‍💻 #webdevelopment #digital #technology