PDA

View Full Version : Sencha.io Sync Beta Open for Public



hyperionab
14 Sep 2011, 1:08 PM
Sencha Touch folks!

We're happy to release to you the public beta of Sencha.io Sync. We're releasing it early to the forums to give you a preview of the broader beta we'll make available later this month.

In order to get going, download the Getting Started guide here:

http://cdn.sencha.io/sencha-io-sync-getting-started-20110913.pdf (http://cdn.sencha.io/sencha-io-sync-getting-started-20110913.pdf)

You'll also need a special Sencha Touch, version "1.2.0", which is a special build of Touch 1.1 that includes the new "syncstorage" that's needed to connect up to Sencha.io Sync. It can be downloaded here:
http://cdn.sencha.io/touch/sencha-touch-1.2.0-alpha-20110913.zip
(http://cdn.sencha.io/touch/sencha-touch-1.2.0-alpha-20110913.zip)(2011-09-20: see below for updated build)

We're making this build specially available for people participating in the SenchaCon 2011 app contest (http://www.sencha.com/share-contest) and folks who are interested in trying out Sencha.io Sync.

Please note that this is a beta, so please do not use it for production environments or mission critical applications. Since it's a beta, the APIs may change and your data may get lost. We don't expect it to, but since it's a beta, anything is possible.

Good luck and let us know how it goes!

Cheers,

Aditya Bansod
Sencha Product Management

steve1964
14 Sep 2011, 2:31 PM
Hi, Sencha Touch 1.2.0 is a specail build of 1.1.0 or 1.1.1?

hyperionab
14 Sep 2011, 4:28 PM
It's actually a build of Touch 1.1.1, so there are a few bug fixes we may not have released yet.

hyperionab
20 Sep 2011, 1:37 PM
Hi folks -- we have an update build for Sync.

http://cdn.sencha.io/touch/sencha-touch-1.2.0-alpha-20110920.zip (http://cdn.sencha.io/touch/sencha-touch-1.2.0-alpha-20110920.zip)

This update fixes a bug in Sync and Touch where you were unable to dynamically create a store that uses Sync.

mr.b
20 Sep 2011, 6:31 PM
Hi,
Sorry if I missed this somewhere else: Is there also a special build needed for Ext-js to test this?

Or is only Sencha Touch supported at the moment?

Thanks,
Brett

hyperionab
20 Sep 2011, 10:33 PM
Right now only Sencha Touch is supported. Ext JS is in the roadmap but we're starting with Touch.

xjamundx
28 Sep 2011, 12:29 PM
Hi,

I built an app for a company that measures sidewalks. We're currently using local storage and often after a lot of entries that app basically will lose all of the data. (It's sort of recoverable, but essentially we go over the limit and weird things start to happen). Does sencha.io magically solve this problem for me, because it's all backed up to the cloud or does it still rely primarily on local storage and therefore not last beyond 2.5 - 5mb?

Oh and if anyone has any suggestions to help us get around the local storage issue that would be great.

Thanks,

Jamund Ferguson

hyperionab
28 Sep 2011, 3:10 PM
The local replica is stored in localstorage, so we do have the same limitations as the localstorage does. The server has a full replica (i.e. the sync of it), but since we use localstorage to keep the replica, we have the same limitations as the browser.

dolowoyo
30 Sep 2011, 10:13 AM
Sencha.IO sync is some good news.

I'm still trying to figure out how this will work for my company's app. Our IPad app (still in the works) will involve A LOT of data (sensitive and secure). We currently plan on developing a service layer on top of our application layer & databases (sql server). Whenever our users are online, then our app uses our services to read/write data, but when no connection is available (for whatever reason), we plan on storing data locally, and then syncing it back up to our live stores.

Now Sencha.io sync seems to help resolve this issue, but from all the docs i've read so far, it syncs to a Sencha cloud location (pls correct me if i'm wrong). But am I able to sync up to our own live stores when the user's device regains connectivity?

Looking forward to your responses.

hyperionab
30 Sep 2011, 11:02 AM
Hi there -- right now, we only sync to our cloud and that's likely how it'll be for a while. We store a bunch of metadata in order to make the sync work. We're looking for the future (think: after 1.0) to have webhooks so that you can get callbacks when the state changes, but right now it's only w/in our cloud.

dolowoyo
30 Sep 2011, 11:56 AM
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.

bastard
1 Oct 2011, 7:14 PM
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.

bdvr
2 Oct 2011, 11:59 AM
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.

Möhre
4 Oct 2011, 10:47 PM
Will it be possible (and documented) to read the data from your sencha-server and store new records?

We don´t need an external sync but have to connect from an external app, which is not browser based.

jujuo
10 Oct 2011, 4:26 AM
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.

Thank you in advance,
jujuo

hyperionab
10 Oct 2011, 8:09 AM
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.

hyperionab
10 Oct 2011, 8:10 AM
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.

merrells
10 Oct 2011, 8:20 AM
@jujuo,

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.

John

Robertnay
10 Oct 2011, 8:08 PM
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!

merrells
10 Oct 2011, 8:19 PM
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.

John

Robertnay
10 Oct 2011, 8:29 PM
Thanks for the quick reply, merrells! I'm glad to hear that access control will be coming, and in the meantime I think I'll still go ahead and implement sync, as I assume that I could add the access control easily later?

merrells
10 Oct 2011, 8:36 PM
Yes, we will endeavor to make it easy to add code to an existing app to enable access control.

But, we are not promising to migrate existing databases... We might, but we also might not.

John

jujuo
11 Oct 2011, 12:38 AM
Thank you John ! And so you said the timestamps are used but does it check the time when the guy was online/offline ?

(sorry if it sounds stupid but I would like to be sure)
at 08:00 user1 and user2 start to work online
at 09:00 user1 has not network so he works "offline" on localdata
at 09:30 user2 who is still online changes the data "name"
at 10:00 user1 who is still offline changes the data "name" which is after user2 but not yet synchronized with the server because offline
at 11:00 user1 is back online and synch..
Which timestamp is used ?
1) when user1 got offline at 9:00 (so before user2) ? So user1 who were offline "lose"
2) when user1 changed the data (even if he was offline) at 10:00 (so after user2) ? So user1 who were offline "wins"

carlostg
11 Oct 2011, 6:15 AM
Am I required to define a localstorage store for a model with syncstorage to work?

merrells
11 Oct 2011, 9:06 AM
@jujuo

No, there's no notion of on or off line in the system. Just the current time.

(Full disclosure: We don't really use just the wall clock time. It's actually
a logical clock that has time as a component. And we also synchronize
the logical clocks of all the replicas of a datastore... so in effect it's a global
logical clock.)

John

merrells
11 Oct 2011, 9:07 AM
@carlostg

No, you define a 'syncstorage' store. It actually creates a 'localstorage' store for you, and also a proxy for performing the synchronization with the servers.

John

Luc
18 Oct 2011, 12:56 AM
Hi,

We have been integrating sync service in our app. It worked very well on Friday last week.

However, currently (Tuesday, 18 Oct) the sync service responds with a 502 Bad Gateway

Can you please have a look?

Kind regards,

Luc

merrells
18 Oct 2011, 5:53 AM
@luc

Yes, the service went down about 6 hours ago. 12:30 am PST. I'm looking at it now.

I think we accidentally picked up a breaking change from a dependency.

Will update here when it's fixed.

John

carlostg
18 Oct 2011, 7:09 AM
Can someone post a working example. I have tried different configurations for the syncstorage and cannot make it work.

Help will be greatly appreciated.

Luc
18 Oct 2011, 10:37 AM
Perhaps it doesn't work because currently the service is down?

Merrells is working on it...

Luc
18 Oct 2011, 10:40 AM
Tip to get syncstorage working in your app: just create and test your app with a proxy: localstorage. If this is working you only need to replace the proxy config (see the getting started pdf) and you should be up and running.

merrells
18 Oct 2011, 11:07 AM
@luc

Sync Service is now back online. I'm sorry for the outage. We did pick up a breaking change from a dependency. Fixed the symptom and the cause.

@carlostg

Try your code again. If it doesn't work then send me your console.log output and code snippet.

John

Luc
18 Oct 2011, 12:28 PM
@merrell: thanks

Surinder singh
28 Jan 2012, 1:52 AM
Hi,
is there any working demo app with syncstorage?
Can i use "Surinder singh" as key
is there anything to setup under developer.sencha.io for syncstorage

i am getting the error in log
{"r":"error","message":"locked"}

merrells
28 Jan 2012, 4:08 PM
Hello


> is there any working demo app with syncstorage?


There is a demo based on ST1.


http://keynote-whiteboard.senchafy.com/


> Can i use "Surinder singh" as key


Yes. Right now any key will do. (We'll be replacing this 'key' with
a better solution in the next release.)


> is there anything to setup under developer.sencha.io for syncstorage


No


>i am getting the error in log
>{"r":"error","message":"locked"}


That's a server error... I just fixed it at our end... try again.


John

Surinder singh
8 Feb 2012, 7:56 AM
Thanks John, it is working now