I got a design idea and I would like to have some advice from SF about It. I have 5 customers with small real-estate databases. I've built for them a desktop app and now they would like to merge their database to share their data. I don't want to centralize everything in one place nor I want to do maintenance for servers. They told me also, that all of them in their offices, have little servers and maintenance guys available. Although everything seems suitable for web application, I had the idea to experiment something new:
- Any customer small-server wild be connected to the others in a sort of mesh network without a single point of failure and through VPNs.
- If one of the servers went down the customers could still connect to their databases from one of the other mesh networked servers instead of from the local one that is down.
- During normal operations all the servers sync the db with the others through VPNs.
- I can accept a half-day timing window of NON synched data, in other words, since I don't need real time synchronization, the server don't have to always stay in synch.
- I can migrate my data over to other Non-Sql technologies like CouchDB or Redis or whatever you suggest.
As you can see I don't have a lot of constraints and although I could go with a web application I would like to delegate and decentralize support, data-privacy and management, as more as I can to my customers offices.
Is that a crazy idea? Do you know If something similar exist? Which technology would you suggest?