Stai mescolando due diversi tipi di architettura, ed è difficile estrapolare pattern per uno nell'altro. I microservizi fanno parte dell'architettura di rete, che ha accettato modelli per come i server devono comunicare, come ridimensionare le app e migliorare la resilienza per la raccolta di spazi di indirizzi che compongono la tua applicazione (pensa a uno spazio di indirizzi come a un singolo oggetto dispiegabile, vive in Docker, una VM o una macchina fisica). In questo spazio, non ci sono raccomandazioni per l'eventuale necessità di disporre di uno o più database poiché non può conoscere abbastanza la logica aziendale per formulare una raccomandazione. Si dice che se hai bisogno di più database per lo spazio degli indirizzi, puoi distribuirli tramite Docker.
L'architettura dell'applicazione ha schemi su come strutturare il codice per implementare una singola unità deployable. Qui è dove decidi se ciascuna installazione può funzionare correttamente con un database dedicato o se più installazioni dello stesso codice devono condividere un database. In base alla progettazione, l'architettura dell'applicazione non deve preoccuparsi della sua esecuzione in un microservizio. Dovrebbe sapere se sta condividendo un database con altre copie di se stesso, ma se si sta utilizzando Docker o una VM o un server fisico non è importante.
Quindi la tua domanda non dovrebbe riguardare l'approccio consigliato da Microservices, ma su quale delle tue applicazioni specifiche richiede. Poniti questa domanda: se due copie del tuo codice sono in esecuzione contemporaneamente, devono condividere un database per mantenere l'integrità dei dati? In caso contrario, utilizzare più DB in contenitori diversi, in cui ogni ID dedicato alla distribuzione di quel codice. In tal caso, utilizzare un DB in un contenitore disponibile per tutti.
In pratica, spesso si finisce con un DB per ogni distribuzione in cui vengono conservate le informazioni sulla cache (questo aiuta con il ridimensionamento) e un DB condiviso per la persistenza dei dati aziendali (che aiuta con l'integrità dei dati). Aggiungi CQRS al tuo elenco di cose da indagare mentre scavi in Microservices. È un eccellente modello scalabile che funziona bene con Microservices.