Sono un po 'confuso. Sto lavorando in una giovane società bancaria e abbiamo deciso di implementare un'architettura DDD per rompere la complessità.I microservizi interrompono il contesto limitato?
Quindi, ecco la mia domanda (segue una proposta di design fatta da qualcuno nel team). Diciamo che abbiamo 3 diversi domini. D1, D2, D3, che espongono servizi di dominio (web). Ogni dominio manipola entità aziendali fortemente tipizzate, che si basano sulle stesse tabelle. Di fronte a questi domini, vogliamo un microservizio per garantire che i dati presenti nelle tabelle siano coerenti, in maniera centralizzata. D1, D2 e D3 chiedono al microservice di mantenere i dati conformi a regole specifiche. Vogliamo che il microservizio funga da proxy CRUD per le tabelle. Il microservice fornisce specifici DTO ai domini D1, D2 e D3, offuscando le tabelle a D1, D2, D3.
Questo approccio sembra buono? Prenderesti in considerazione l'utilizzo dei microservizi in un'architettura DDD per gestire CRUD e la coerenza dei dati per 1+ domini? Il "CRUDing" e la convalida dei dati con un microservice interrompono il contesto limitato? Quali sono le migliori pratiche con i microservizi in un'architettura DDD, se ce ne sono?
Molte grazie per il vostro contributo,
[EDIT]
Il seguente articolo mi hanno aiutato a perfezionare il mio pensiero: http://martinfowler.com/bliki/MicroservicePremium.html
Microservices sono utili in situazioni complesse in cui i sistemi monolitici fallito di essere gestibile. Non sono buoni candidati per implementazioni di design in anticipo. D'altra parte, DDD cerca di affrontare la complessità all'inizio dei progetti. Il DDD riuscito non dovrebbe soddisfare le implementazioni dei microservizi.
Non sono sicuro che questo risponda a tutte le tue domande, ma ho trovato che questa è una lettura interessante sull'argomento dei microservizi: http://particular.net/blog/microservices-future-or-empty-hype –
Puoi scegliere qualsiasi cosa l'architettura che vuoi, non esiste un'architettura DDD. Un'architettura composta da microservizi funzionerà altrettanto bene (o non bene) utilizzando DDD. –
In DDD più domini non condividono le stesse tabelle del database. Questo vale anche per i microservizi. Da quello che hai scritto nella tua domanda sembra che il tuo sistema non si adatti affatto a un approccio DDD. –