Interesantes reflexiones en este artículo de San Newman, el autor del libro «Building Microservices» sobre el uso de Kafka en microservicios:

  • Cuando te mueves de una aplicación con un sola base de datos a una arquitectura de microservicios, lo primero que pierdes es un sitio compartido donde los datos pueden ser accedidos fácilmente.
  • Kafka te permite volver a recuperar este elemento de «sitio de datos compartido» permitiendo crear un «backbone» de datos para toda la aplicación, pero haciendo que los microservicios sigan manteniendo un algo grado de autonomía.
  • Kafka también proporciona una solución a otro concepto que se pierde al ir a una arquitectura de microservicios ya que los nuevos servicios pueden ponerse online fácilmente pudiendo acceder a toda la historia (de los datos) de los otros servicios.
  • Puedes añadir una base datos a tu arquitectura, un sitio donde puedas hacer una consulta de cualquier dato, especialmente enfocado a un informacional. Lo que habría que hacer es conectar los topics de Kafka para que escriban en esa base de datos. Es decir, las escrituras se hacen a través de un mensaje que se pone en Kafka mientras que las lecturas se pueden hacer contra esta base de datos (siguiendo un patrón CQRS). Esto lo estamos implantando ahora mismo en uno de nuestros proyectos más importantes.

Lo dicho, interesante para tener en cuenta en nuestros diseños.