Attualmente sto lavorando con un sistema che è stato aggiornato in modo frammentario da una soluzione Visual FoxPro originale, ad un sistema che ora ha le seguenti parti:
-
Installazione FoxPro locale (questo è un sistema Point Of Sale, quindi progettato per essere utilizzato su touchscreen nei negozi / saloni)
-
Servizio Windows locale che sincronizza i dati dal database Foxpro locale in un DB PostgreSQL remoto su una serie di API REST. Questo loop spinge entrambi i dati e controlla anche i nuovi dati (che possono provenire da sistemi di prenotazione online, ad esempio)
-
Un portale in stile SaaS online supportato dal DB centrale di PostgreSQL e che consente una suite di funzionalità aggiuntive oltre all'installazione locale - dashboard, reporting dettagliato, marketing, prenotazioni online tra gli altri.
La fase finale di questo progetto è la sostituzione del sistema Foxpro stesso con una soluzione ospitata. Idealmente, questo POS non cadrà se Internet verrà abbandonato e sosterrà anche più terminali, e dopo molte ricerche e test di framework mi sono stabilito su Meteor come approccio ideale per questo. Gestisce l'aggiornamento reattivo tra i terminali, il minimongo sembra fornire una capacità di recupero sufficiente contro le interruzioni temporanee di internet, e nel complesso va bene il conto.
La decisione architettonica con cui sto lottando è con il database remoto. Ho messo a punto un progetto PoC con Angular2 e Mongo, con un DB remoto remoto ospitato e funziona. Ora ho bisogno che i dati siano sincronizzati a 2 vie nel DB PostgreSQL che mi lascia con 2 opzioni:
-
Sincronizza il Mongo DB remoto con PostgreSQL (tramite le API REST esistenti o simili)
-
Lavorare con uno dei pacchetti sperimentali e provare a utilizzare il DB PostgreSQL esistente come back-end, rimuovendo la necessità del "Mongo DB" intermedio.
Il mio istinto è di prendere il primo approccio, mi sembra più robusto e ho già le API in atto, tuttavia senza avere molta esperienza (quasi zero) con Mongo, sto andando in questo modo nel modo sbagliato? E se questo è il modo giusto, c'è un approccio migliore per sincronizzare Mongo in questo modo?