Estoy creando una nueva aplicación y estaba leyendo sobre la arquitectura de 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, la aplicación de ventas y una aplicación de tickets. Suponga que ambas aplicaciones se crean como microservicios propios. Sin embargo, ambas aplicaciones, cuando se implementan (suponiendo que se implementan por separado, dicen que Sales usa 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 de propietario para una entidad de datos maestros dada (por ejemplo, para Cuentas, podría ser la aplicación de Ventas) y una parte interesada (por ejemplo, la aplicación de Venta de entradas necesitaría tener información sobre Cuentas).
Hay varias formas de lograrlo: - Replicación de datos de maestro a interesado - Lectura síncrona de interesado a maestro (el paradigma de la arquitectura de microservicios no recomienda la dependencia de sincronización) - Repositorio centralizado propio
Además, incluso dentro de Cuentas, puede haber una parte central que es común tanto para Ventas como para Venta de entradas (por ejemplo, nombre de cuenta, dirección, etc.). Sin embargo, algunos aspectos de la Cuenta SOLO pueden ser relevantes para Ventas y otros SÓLO relevantes para Boletos.
¿Alguna idea / mejores prácticas / opiniones sobre cualquiera de las opciones mencionadas anteriormente?