Con tutto il discorso di Microservices con Domain Driven Design, ho esaminato due architetture: Database-Centric Architecture
e Domain-Centric Architecture
(non da confondere con Domain Driven Design ). Ora in Architecture-Centric Architecture, il database è l'oggetto focale da cui dipendiamo. Senza di esso, l'applicazione non funzionerebbe. Usando il framework Spring come esempio, ora possiamo facilmente implementare un intero ecosistema Microservice con tutta la magia che Spring ci offre. Tuttavia, osservando molti diagrammi di Microservices, mi sembra ancora molto più Data-centric poiché il database sembra essere un componente importante che, se smettesse di funzionare, il sistema non funzionerebbe affatto.
Osservando il diagramma sopra, possiamo facilmente rompere i monoliti in servizi indipendenti e riusciamo ad applicare il Domain Driven Design all'interno dei nostri microservizi. Tuttavia, mi sembra ancora di essere all'interno di Architecture-Centric Architecture in quanto i nostri microservizi non funzionerebbero come previsto senza i nostri database. Inoltre sembra che l'uso di un framework come Spring in genere ti leghi al pattern MVC (@Controller, @Service, @Repository) che per me è più Database-Centric piuttosto che Domain-Centric.