I got a bunch of comments on Twitter about my State of Instacast Sync blog post. Most of them were quite positive and encouraging. Some comments suggested Dropbox or iCloud Key-Value Store again. I just want to give some additional feedback about those as well.
About Dropbox - as I said in my other post, I don't think Dropbox is a great fit to store lots of small chunks of data stored in chronological order. While it is certainly possible to create a reliable syncing algorithm that works with Dropbox, the latency and the number of requests is a problem. Suppose you mark an episode as starred. Now a new file needs to be created that tracks this change and uploads it to Dropbox. Multiple changes create lots of files and reading all these files back when updating the other device will issue lots of request. This is slow and takes a long time. Also an app can not use a persistent connection to Dropbox to get notified of changes in a timely manner, and seriously nobody wants a sync button anymore.
About the iCloud Key-Value Store. It has been created to store small bits of data, e.g. configuration, states, etc. It's current limit of 1024 keys and 1MB of storage space does not make it a good fit to keep a history of changing objects. This history would accumulate data quickly and you will run into the quota limits earlier than expected. It is not enough however to only store the current state of the application, because you can not possibly decide if an object has been deleted on one device or added on the other.
The best solution I see right know still is Simperium. I have to change the whole data model in Instacast to make it work, but I think if it works as advertised, it would be worth it. Other then having an awesome sync mechanism, it also has some other advantages. It would make a potential Instacast web app possible that syncs your data seamlessly with native apps. And because the user data is not isolated in iCloud, we could use it to add additional services on top, like an Auto-Flattr of played or starred episodes. And I think $5 a year for such a great service is affordable.
We'll see. I haven't finalized my decision yet, but the latter option is what I am working on right now. Comments on Twitter.
August 8th, 2012 • Permalink
05/04/2013 - Tips and Tricks Part Three (Sharing and Accounts)
05/03/2013 - Instacast for Mac - Tips and Tricks Part Two (System Functions)
05/02/2013 - Instacast for Mac - Tips and Tricks Part One (Playback)
05/01/2013 - Instacast for Mac - Public Beta Available
12/15/2012 - Integrate with Instacast
12/12/2012 - Instacast's Automatic Download Management
12/09/2012 - More about our Cloud Sync
12/06/2012 - Instacast 3.0 Available
09/13/2012 - Instacast Memberships
08/08/2012 - Instacast Sync Follow-Up
08/06/2012 - State of Instacast Sync