Sto costruendo una nuova applicazione e stavo leggendo sull'architettura dei micro-servizi. L'architettura stessa ha molto senso dal punto di vista dello sviluppo, della distribuzione e della 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 un'app di ticketing. Supponiamo che entrambe queste app siano costruite come propri micro-servizi. Tuttavia, entrambe queste app, una volta distribuite (supponendo che siano distribuite separatamente, dicono che Sales utilizza MongoDB e Ticketing utilizza MariaDB), dovrebbero avere accesso alle stesse istanze di dati anagrafici, ad esempio Account, Prodotti. Ciò significherebbe che ci sarebbe un'app del proprietario per una determinata entità di dati anagrafici (ad es. Per gli account potrebbe essere l'app di vendita) e una parte interessata (ad es. L'app di ticketing dovrebbe avere informazioni sugli account).
Esistono diversi modi in cui ciò può essere ottenuto: - Replica dei dati da master a parte interessata - Lettura sincrona da parte interessata a master (la dipendenza dalla sincronizzazione non è consigliata dal paradigma dell'architettura dei micro-servizi) - Repository centralizzato proprio
Anche all'interno degli account, può esserci una parte fondamentale comune sia per le vendite che per i biglietti (ad es. Nome account, indirizzo ecc.). Tuttavia, alcuni aspetti del Conto potrebbero essere SOLO rilevanti per le Vendite e altri SOLO rilevanti per il Biglietto.
Qualche pensiero / best-practice / opinione su una delle opzioni sopra menzionate?