I plan to have a cloud web application(CWA) and several local web application(LWA), let’s assume 3 LWAs and 1 CWA. CWA === LWA.
This web application would consist of a database server, file storage server, An Application server.
I have two options for synchronisation:
Option 1:
A record saved in LWA-1 would reflect in the CWA and LWA-2 and LWA-3 and vice versa (it might not be real-time and I’ll explain why in a bit).
Option 2:
A record saved in LWA-1 would not reflect in LWA-2 and LWA-3 BUT would sync to the CWA. Same goes for other LWAs. Essentially, The CWA aggregates data synced from all LWAs.
Main Challenges:
-
Internet connection is really really unreliable and bad so synchronisation will happen at intervals when Internet will be stable. This is why I’m relying heavily on local systems and not a complete cloud solution.
-
Avoiding Duplicate keys on synchronisation.
-
Ensuring Data Integrity.
-
Maintaining unique records. E.g client A registered on LWA-1 must not be able to re-register on LWA-2 and LWA-3.
I need your bright minds to help determine the best approach to designing this whole system.
Techs: NodeJS, MySql, Linux, python
2