kurtmilam/Backbone.dualStorage — comment on commit f20ca9ced1c55bc42572a06441aff6615f967ef9
File:  line 0
By kurtmilam:

To your first question - I'd do that processing on the query side. That is, save the right kind of document in CouchDB and use the map/reduce functions in views to decide how and what data to return to the user.

Collections: Absolutely. You can get anything from a list of ids to a list of full documents - you define what the views send back to you, and you can even use javascript in the map/reduce functions to return computed values, etc. Short answer - it's easy to define a view that only returns the fields you need from a collection. On the other hand, if the CouchDB is on the client anyway, you're not making an expensive HTTP call to get the data, so you may be able to merge your old lightweight list collections with collections that contain full models without paying a penalty for it.

I'm just getting into the replications part, but you can set up continuous replications. You can even set up your backbone app to listen to the local CouchDB's changes feed and update your collections and models in near realtime based on changes replicated to the local couchDB. It's not necessary to wait for fresh data, but you can. Update conflicts are marked in CouchDB as part of replication. I believe the replication is pretty solid, since it's one of CouchDB's main selling points.