Al lavoro, abbiamo diverse applicazioni con database in un server SQL centralizzato. Ogni volta che un'applicazione deve funzionare con i dati di un'altra applicazione, la interroga o la aggiorna tramite il database. Credo che questo sia il modello "Database condiviso" come descritto nel libro Modelli di integrazione aziendale (Hohpe & Woolf).Refactoring lontano dal modello di Database condiviso
Queste dipendenze del database incrociato ci stanno causando molti, molti mal di testa. Il più grande di questi al momento è che stiamo incontrando problemi di prestazioni sul server SQL e non è possibile scalare a causa delle dipendenze tra database. Penso che ciò che dovremmo fare è spostarci dallo schema del Database condiviso verso un sistema di messaggistica come descritto nel libro EIP. Ogni applicazione sarebbe responsabile di tutti i propri dati e altre app che vorranno accedere a tali dati otterrebbero i servizi (su un bus di messaggistica?).
- Da dove iniziare il refactoring verso il modello di messaggistica?
- Iniziamo con il refactoring di una delle applicazioni per gestire il proprio database dell'applicazione?
- Quindi le altre applicazioni sono attualmente integrate con quella attraverso il database?
- È questo il modo migliore per disaccoppiare le nostre dipendenze del database o dovremmo iniziare da qualche altra parte?