Para las personas que están dividiendo aplicaciones monolíticas en microservicios, ¿cómo están manejando el enigma de dividir la base de datos? Las aplicaciones típicas en las que he trabajado hacen mucha integración de bases de datos por razones de rendimiento y simplicidad.
Si tiene dos tablas que son lógicamente distintas (contextos delimitados si lo desea) pero a menudo realiza un procesamiento agregado en grandes volúmenes de esos datos, entonces en el monolito es más probable que evite la orientación a objetos y en su lugar esté utilizando el estándar de su base de datos ÚNETE a la función para procesar los datos en la base de datos antes de devolver la vista agregada a tu nivel de aplicación.
¿Cómo justifica la división de esos datos en microservicios donde presumiblemente se le pedirá que "unir" los datos a través de una API en lugar de en la base de datos?
Leí el libro de microservicios de Sam Newman y en el capítulo sobre dividir el monolito da un ejemplo de "Rompiendo relaciones de clave externa", donde reconoce que hacer una unión a través de una API será más lento, pero continúa diciendo si su aplicación es lo suficientemente rápida de todos modos, ¿importa que sea más lenta que antes?
¿Esto parece un poco simplista? ¿Cuáles son las experiencias de las personas? ¿Qué técnicas utilizó para que las uniones de API funcionen de manera aceptable?