En el trabajo, tenemos varias aplicaciones con bases de datos en un servidor SQL centralizado. Cuando una aplicación necesita trabajar con datos de otra aplicación, solo la consulta o la actualiza a través de la base de datos. Creo que este es el patrón de "Base de Datos Compartida" como se describe en el libro de Patrones de Integración Empresarial (Hohpe & Woolf).Refactorización fuera del patrón de base de datos compartida
Estas dependencias cruzadas de bases de datos nos están causando muchos, muchos dolores de cabeza. El más grande de estos en este momento es que nos encontramos con problemas de rendimiento en el servidor SQL, y no podemos escalar debido a las dependencias entre bases de datos. Creo que lo que debemos hacer es alejarnos del patrón Shared Database hacia un sistema de mensajería como se describe en el libro EIP. Cada aplicación sería responsable de todos sus propios datos, y otras aplicaciones que quieran acceder a esos datos la obtendrían a través de los servicios (¿en un bus de mensajería?).
- ¿Por dónde empezamos a refactorizar hacia el patrón de mensajes?
- ¿Comenzamos refacturando una de las aplicaciones para administrar su propia base de datos de aplicaciones?
- ¿Qué pasa con las otras aplicaciones actualmente integradas con esa a través de la base de datos?
- ¿Es esta la mejor manera de desacoplar nuestras dependencias de bases de datos o deberíamos comenzar en otro lugar?