From building http://platform.qbix.com/features/streams I know that there are a lot of challenges here. Caching, throttling and batching requests is of course really useful. My biggest question is how do you implement:
* multi-user access
* realtime updates to connected clients, and
* offline editing and sync?
When multiple users access a resource, you have to consider things like consistency issues (making sure all users see the same changes applied in the same order). Also other stuff would be nice like access control (perhaps integrated with the publishing user's address book) as well as subscriptions notifications when something changes.
Does anyone know of a library that implements that? It took me a couple years to get everything right in my own library.
Multi-user access and realtime updates seem very connected to me. For these you could plug in my upcoming Firebase adapter for angular-data and boom! I actually had a complete GoInstant adapter...
Another option is too use web sockets or a pub/sub messaging service to notify all clients of changes to data, and each client can decide what it wants to do at that point (refresh data, get the changes, etc.). You could implement your own 3-way databinding this way.
Angular-data doesn't support offline editing and sync out of the box right now, but I'm considering writing an adapter that combines the existing http and localStorage adapters into one that supports offline editing and sync. Or you could make your own.
Does anyone know of a library that implements that? It took me a couple years to get everything right in my own library.