Ho un grande database di dati che possiamo considerare il sistema di oggi. I dati hanno un front-end Web che consente ai miei utenti di aggiornare i dati. Chiamiamo questa "soluzione originale"
Quando arrivano nuovi utenti, vengono come una serie di nuovi utenti. Questi utenti hanno bisogno dei propri dati e del proprio front-end web. Chiamiamo questa una "soluzione". Originariamente abbiamo 1 soluzione (la soluzione originale), tuttavia ora ho bisogno della stessa soluzione per un diverso gruppo di utenti.
Alcuni fattori che devono essere considerati nella progettazione:
- La soluzione originale potrebbe scegliere di implementare altri aggiornamenti e inserimenti di soluzioni sui dati.
- Qualsiasi soluzione può scegliere di ricevere dati aggiornati e inseriti dalla soluzione originale.
- Gli aggiornamenti tra le soluzioni dovrebbero essere facilmente condivisibili.
Ora la soluzione più semplice sarebbe solo quella di replicare l'intero database e disporre di una sorta di processo per scrivere e leggere i dati tra le soluzioni. Ciò tuttavia ha un costo molto elevato quando si tratta di duplicare dati, esigenze di archiviazione e così via. Immagino che memorizzare una specie di delta tra i dati sarebbe meglio?
Immagino che una possibile soluzione sarebbe quella di progettare l'architettura in modo molto simile a un sistema di controllo del codice sorgente con i rami? Quando viene implementata una nuova soluzione, sostituiamo la soluzione originale. I diversi aggiornamenti nelle filiali possono essere facilmente aggiornati nel ramo principale e viceversa.
C'è qualche suggerimento su come posso facilmente clonare i dati nella soluzione originale a una nuova soluzione senza replicare il vero database? Forse un modello di progettazione che posso usare nell'implementazione?