Estamos en el proceso de migrar una aplicación monolítica a la arquitectura de microservicios. Debido a algunos requisitos reglamentarios, tenemos que mantener los datos del cliente de diferentes países en bases de datos separadas (específicas del país). Es decir, db de EE. UU. Para clientes de EE. UU., Db del Reino Unido para clientes de Reino Unido ...
Los siguientes diseños que estamos considerando son los siguientes:
Opción 1: una aplicación multiinquilino con soporte de hibernate multiinquilino que se puede escalar a N número de veces dependiendo de la demanda (piense en las vainas de kubernetes). Una sola instancia de esta aplicación podrá conectarse a todas las bases de datos.
Opción 2: Implementar 1 instancia de microservicio por base de datos de país. Con una puerta de enlace API frente a ellos enrutando el tráfico
Si diseñaras este tipo de sistema, ¿cuáles serían tus opciones?