Sto costruendo una nuova applicazione e stavo leggendo sull'architettura dei micro-servizi. L'architettura stessa ha molto senso da un punto di vista di sviluppo, implementazione e gestione del ciclo di vita. Tuttavia, è emerso un problema relativo alla gestione dei dati anagrafici.
Ad esempio, ho 2 app: ad esempio app di vendita e app di ticketing. Supponiamo che entrambe queste app siano costruite come propri micro-servizi. Tuttavia, entrambe queste app, una volta distribuite (supponendo che vengano distribuite separatamente affermano che Vendite utilizza MongoDB e Ticketing utilizza MariaDB), dovrebbero avere accesso alle stesse istanze dei dati master, ad es. Conti, prodotti. Ciò significherebbe che ci sarebbe un'app di proprietario per una data entità di dati master (ad esempio per gli account potrebbe essere l'app di vendita) e una parte interessata (ad esempio l'app di ticketing avrebbe bisogno di avere informazioni sugli account).
Ci sono molti modi in cui questo può essere ottenuto: - Replicazione dati dal master alla parte interessata - Lettura sincrona dalla parte interessata al master (la dipendenza dalla sincronizzazione non è consigliata dal paradigma dell'architettura dei micro-servizi) - Proprio repository centralizzato
Inoltre, anche all'interno degli account, può esserci una parte centrale comune per le vendite e il ticketing (ad esempio nome account, indirizzo, ecc.). Tuttavia, alcuni aspetti dell'Account potrebbero essere SOLO rilevanti per le Vendite e altri SOLO rilevanti per l'emissione di biglietti.
Qualche idea / miglior pratica / opinione riguardo a una delle opzioni sopra menzionate?