Hacker News new | ask | show | jobs
by x5315 2769 days ago
This is correct.

When we process a block request from user A -> user B, we remove the follow edges between user A -> user B and user B -> user A, and then add a block edge from user A -> user B.

When we process an unblock request from user A -> user B, we remove the block edge from user A -> user B.

I imagine that the "Aleksey checked that he was following me again" was either client caching, or eventual consistency latency. There's no nightly batch job or anything doing that.

Source: I work on the social graph service at Twitter.

1 comments

After the test, I unblocked Aleksey, and this tweet includes the video where we saw that Aleksey could see my tweets in his timeline again. Something went wrong after that I guess. https://twitter.com/muratdemirbas/status/1062763863332937728
Yet, another update. It might be that since my tweet included a mention to him, Aleksey clicked on the notification and could see my tweets after that, and not in his timeline. We repeated the experiment, and found that after I blocked and unblocked him, he was indeed still unfollowing me.
Ah ok. :thumbsup:

I described how the logic works above, but we're always subject to and victims of replication or cache-expiration latency. So it could have been that.