Estoy creando una nueva aplicación y estaba leyendo sobre la arquitectura de los microservicios. La arquitectura en sí tiene mucho sentido desde el punto de vista del desarrollo, la implementación y la gestión del ciclo de vida. Sin embargo, un problema que surgió fue con respecto a cómo manejar los datos maestros.
Por ejemplo, tengo 2 aplicaciones, por ejemplo, aplicación de ventas y una aplicación de venta de entradas. Supongamos que ambas aplicaciones están construidas como micro-servicios propios. Sin embargo, ambas aplicaciones, cuando se implementan (suponiendo que se implementan por separado, dicen que las ventas usan MongoDB y Ticketing usa MariaDB), tendrían que tener acceso a las mismas instancias de datos maestros, por ejemplo. Cuentas, Productos. Esto significaría que habría una aplicación propietaria para una entidad de datos maestros determinada (por ejemplo, para Cuentas, podría ser la aplicación de Ventas) y una parte interesada (por ejemplo, la aplicación de emisión de boletos debería tener información sobre Cuentas).
Hay varias formas en que esto se puede lograr: - Replicación de datos desde el maestro a la parte interesada. - Lectura síncrona de la parte interesada a la maestra (la dependencia de sincronización no es recomendada por el paradigma de la arquitectura de los microservicios) - Repositorio centralizado propio
También incluso dentro de Cuentas, puede haber una parte central que sea común tanto para las Ventas como para los Boletos (por ejemplo, nombre de la cuenta, dirección, etc.). Sin embargo, algunos aspectos de la cuenta SÓLO pueden ser relevantes para Ventas y otros SÓLO son relevantes para la emisión de boletos.
¿Alguna opinión / mejores prácticas / opiniones con respecto a cualquiera de las opciones mencionadas anteriormente?