Sincronizzazione del discorso per più istanze

Ho un server master e avrò più di 100-200 istanze slave. Le istanze slave possono essere online/offline, ma verranno utilizzate dagli utenti. Tuttavia, ogni volta che un’istanza offline torna online, dovrebbe essere in grado di sincronizzarsi con il server master senza creare conflitti e aggiornare tutti i dati più recenti. Non voglio apportare modifiche al codice, poiché Discourse si aggiorna frequentemente e non voglio rompere l’istanza a causa di cambiamenti nel codice.

Sto pensando di modificare PostgreSQL in qualche misura. Gli altri file relativi ai dati possono essere sincronizzati utilizzando syncthing. Tuttavia, l’aggiornamento dei dati di PostgreSQL mi preoccupa, perché se sincronizzo direttamente i dati del master, il lavoro svolto dall’utente offline verrà cancellato dopo la sincronizzazione.

Sto pensando di provare a modificare la sequenza di auto-incremento di ogni tabella in UUID nel database.

Esiste una soluzione semplice e possibile per questo?

Discourse non è progettato per un’applicazione come questa. È estremamente improbabile che riusciate a far funzionare una sincronizzazione bidirezionale con PostgreSQL senza compromettere il corretto funzionamento di Discourse.

Modificare ciò richiederebbe cambiamenti significativi nel codice di Discourse.

Se rendete le istanze slave in sola lettura e sincronizzate PostgreSQL in una sola direzione, potrebbe essere possibile far funzionare questa soluzione… ma sarà difficile.

Ciao, ho intenzione di avere un utilizzo simile al tuo. Ho trovato un articolo sulla fusione di 2 siti discourse. Se i passaggi di fusione possono essere automatizzati, forse possiamo impostare un cron job per unire costantemente il database tra il server master e le istanze slave?