I have been doing a lot of research and am trying to wrap my head around an architecture for cross platform data sync. The current architecture of my app is shared code in a PCL, using SQlite.Net (and SQLiteNetExtensions) for local storage. The server-side team has chosen Cassandra clusters running in Azure VMs on the backend which we will interface to with a REST API via ServiceStack. We have a few tables that can be edited at multiple locations so these tables may be vulnerable to conflicts. I am trying to figure out a good synchronization strategy for these tables. I haven't used it before but I think I want something like Android's Sync Adapter but cross platform. Unfortunately I haven't found such a solution.
So far I have found the following:
Looks great and has turn-key sync solution for mobile. However, we are currently headed down the path with Cassandra. I suppose I could store just the conflict-vulnerable tables in Couchbase but this seems les than ideal.
2) Azure Mobile Services
I just found this and am not even sure if I can use it in with Cassandra. Does anyone have experience with this?
3) Microsoft Sync Framework
I found a few ports of this to Xamarin. But it appears to be a port of a codebase that Microsoft abandoned. I'm not sure if it's something I can really trust. Again, I also wonder about how to integrate with my Cassandra backend.
4) Roll my own. Not having done this before does anyone have suggestions for best practices here?
I apologize for the long post but I'm having trouble finding any discussions on what the suggested method is on this for Xamarin. Thanks!