Adding resilience to an application with local data storage fallback
As I have mentioned before, I have designed and implemented a custom cashless catering system for our school. I have no reached the stage where I would like to add that little bit of resilience to the system by allowing them to work without having a connection to the main server - by having a local data store which can be used to store data in, and retrieve data from.
So, my question is this - how would you go about doing this?
My idea is to install an SQL server express instance on each till device, with a copy of the data structure of the main database for things like the item buttons, and for user data (such as fingerprint data, and account balances). These parts would be periodically checked and updated from the main database when it was available.
The storage of local transactions would be done by altering the way each transaction is given an ID. I would alter this to allow each till to have a completely independant ID numbering system, and then the main database would store these as 'local-ID' for example.
Then, transactions could be stored on the local machine and when the connection comes back up, the software would iterate through them, storing the data on the main server and emptying the locally stored data tables.
Now, this seems reasonably complex, so I am wondering if anyone has a simpler idea?