Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Both, due to the Power Law property/problem inherent in natural networks (of which social networks are an obvious example).

For example, (I'm told that) Twitter has effectively two separate systems for distributing updates for users, one for normal users (you and I), and one for celebrities. Propagating Lady Gaga's tweets to all 30 million followers can take something like five minutes to accomplish. It's even more fun when these celebrities start tweeting back and forth with each other.

Maybe SoundCloud's CRDT approach would work better for natural networks? At some point, network communication could start to be an issue with a compile-the-list-at-read design, but I could be wrong.

I personally don't see why a CRDT is necessary if you used something like Twitter's snowflake approach to assign ids. Pull in events is sorted order from each machine, merge, then push to the user. It's not clear to me what adding the CRDT abstraction adds to that besides overhead. Maybe there are other benefits I'm not grasping?



    > At some point, network communication could start to be 
    > an issue with a compile-the-list-at-read design, but I 
    > could be wrong.
You're absolutely right. Optimizing for that bottleneck occupied most of the development time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: