Ho una situazione in cui abbiamo una vecchia applicazione PHP / mySql (10 anni, nessun framework, circa 10 tabelle) che viene utilizzata su poche strutture (meno di 10) in diverse parti del mondo.
Il problema principale in questo momento è che la connessione a Internet non è affidabile in molti di questi siti, e abbiamo bisogno che funzioni anche quando Internet non funziona (anche se per un'ora, ma in genere meno di un giorno). In ogni sito, gli operatori inseriscono i dati e ciascun operatore dipende dall'output dell'operatore precedente (come una catena di montaggio). L'app dipende da alcuni dati gestiti centralmente che non cambiano così spesso, come informazioni sui prodotti, accessi utente, ecc.
Desideriamo comunque raccogliere tutti i dati quando disponibili e inserirli successivamente in un database centrale per rapporti, verifiche, ecc.
In questo momento sto provando a valutare solo le diverse soluzioni possibili:
-
distribuire una versione locale dell'applicazione web su ciascun sito (probabilmente Dockerized), ciascuno con il proprio database locale, quindi scrivere un processo di "sincronizzazione" manuale da inserire nel database master quando è online. Dovrebbe anche sincronizzare le letture di prodotti, utenti, ecc.
-
Usa una sorta di database distribuito come Clustrix che si sincronizzerà automaticamente quando online.
-
Un tipo di soluzione ERP personalizzabile. Non ho ancora indagato troppo su questo.
L'interfaccia principale (che deve funzionare offline) è abbastanza semplice, 4-8 moduli di immissione dati di base, quindi potrebbe essere riscritta se necessario.
Si noti che una soluzione di tipo "pagina Web offline" non funzionerà perché ogni operatore dipende dai dati di un operatore precedente sul sito.
Per il database distribuito, la preoccupazione principale inizialmente potrebbe riguardare i PK generati da sequenze.
Ho fatto delle ricerche ma non ho trovato una soluzione di cui sono fiducioso, il motivo principale è che ho bisogno di leggere e scrivere dati.