I mean, that's why it didn't catch on right :-) It's hard :-)
I mean, that's why it didn't catch on right :-) It's hard :-)
The "shard" could just be that users own feed in this case. Then you get offline for free where user adds a tweet and it appears immediately, replicating back to server when he goes back online. The server replica side will need to be a lot more complicated to deal with broadcasting but I don't see why it won't work.
Why not just load what is needed and hydrate the data over time? What about datasets where you need pagination/ordering etc. And the only way to guarantee order is to pull the whole set?
Of course, users with limited RAM and metered connections won't like that. Which is another reason why it didn't catch on.
If I had to make a Twitter clone with CouchDB, I would probably have one timeline document per user, and maybe one per day to limit the syncing bandwidth.