Domanda

Di recente ho letto i modelli di integrazione aziendale di Hohpe e Woolf, alcuni dei libri di Thomas Erl su SOA e guardando vari video e podcast di Udi Dahan et al. su CQRS e sistemi guidati da eventi.

I sistemi nel mio luogo di lavoro soffrono di alto accoppiamento. Sebbene ogni sistema abbia teoricamente il suo database, c'è molto da unire tra di loro. In pratica questo significa che esiste un enorme database che tutti i sistemi utilizzano. Ad esempio, esiste una tabella di dati dei clienti.

Gran parte di ciò che ho letto sembra suggerire dati denormalizzanti in modo che ogni sistema utilizzi solo il suo database e qualsiasi aggiornamento a un sistema viene propagato a tutti gli altri usando la messaggistica.

Ho pensato che questo fosse uno dei modi per far rispettare i confini in SOA - ogni servizio dovrebbe avere il proprio database, ma poi ho letto questo:

https://stackoverflow.com/questions/4019902/soa-joining-data-across-multiple-services

E suggerisce che questa è la cosa sbagliata da fare.

Separare i database sembra un buon modo per disaccoppiarsi, ma ora sono un po 'confuso. È una buona strada da prendere? Si consiglia mai di separare un database, dire un servizio SOA, un contesto limitato DDD, un'applicazione, ecc.?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top