Thanks for the response hyperionab. As much as I would love to use Sencha.io sync, it may not be a good option for us right now until we can sync to our own datastores.
Yea, it too bad. I was waiting to deploy my app until Sencha Sync arrived but if it will only sync to your servers, that is truly disappointing.
The fact is, most people don't trust other people with their data. Although I fully expect Sencha to be around for a while given the great work you guys are doing, I said the same about a lot of companies in the Bay Area in the past and have been proven wrong before.
I'm using WebSQL and I rolled my own sync logic to tie into a back-end running the Microsoft Sync Framework with SQL Server. It uses a fairly simple method of storing last edit / creation dates on each server record, then the client sends its last "anchor" date when requesting the latest changes. It works quite well, but is not without tradeoffs. This Sencha sync solution looks very interesting, but seems like quite a different approach.
So, two questions:
-Is WebSQL support in the roadmap?
-Any possibility of integrating wih the MS Sync Framework back-end I described, or is the anchor date approach too far off from how Sencha Sync works (which I obviously don't fully understand at the moment).
I also share bastard's sentiments about security and the desire for self-hosting.
Just an example to be sure to understand what will happen.
A database with one product : id=1, name="Macbook"
user1 : at 5:00 is working on the app. 6:30 online, he renames the product in "Macbook pro".
user2 : at 5:00 is working on the app : < 6:00 no more network> 7:00 offline, he renames the product in "Macbook air" <8:00 network is back> SYNC ?
I guess what did user2 offline is dead but just wanna be sure.
Right now, all access has to come from Sencha Touch. It's a limitation we're aware of and we'll be working to address it (so you can read/write out of the server, and do other 3rd party operations), but in the beta and likely the v1 it'll be as-is.
We don't have support for WebSQL. In fact, WebSQL looks like it'll disappear from the browsers and get replaced with IndexDB. In either case, we don't plan on using WebSQL or IndexDB yet, and we're using LocalStorage for the time being. Regarding MS Sync, it's not something we've looked in to. It's a very different approach, true, but it's an interesting idea.
This is an example of an attribute value conflict. The value of the attribute called 'name' is either Macbook' or 'Macbook pro'. We resolve this kind of conflict using a strategy called last-writer-wins. So, if user2 changed the attribute value before user1, then user1 'wins', otherwise user2 'wins'. The before here is based on the ordering of timestamps issued for each change.
How could I use Sencha.io sync in a case (say a note-taking app) where the data from each user needs to be separated and governed by some form of access control. Is it possible to do that with sync in its current state? Thanks, and sync looks really great so far!
The current release of sync does not provide any access control enforcement. So, with your note taking app, any user could edit any other user's database, assuming they knew the name of the database.
A future version of sync will include support for access control, so that a user can provide read-only access to a database.