Event Sourcing using Apache Kafka
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:
- 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.
- 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.
- 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