Twitter also precomputes the feed. But only tweets from accounts without a significant following gets written to the follower's feed. The popular users gets a fetch the tweet on the fly approach.
I learned a lot of new information. The most shocking part was discovering that feed preferences use a "ranking algorithm," not just machine learning. I always thought it was only machine learning.
It's also interesting that the feed is pre-calculated in cache before a user visits, saving computer resources.
Great article Neo. Feeds are everywhere nowdays, Substack notes starts to gain popularity too. I'm curious to know how bad is the performance for non active users, who login after a long time with nothing in Redis :)
I don't know about Hashnode's case. But Twitter queries the database to create their feed/timeline for inactive users, so slightly slower than querying Redis.
ranking approach is not explained well, are they fetching IDs from the redis list(linked-list) and sorting and re-inserting or just interesting at the end of the list?
Is it not insanely inefficient to pre-compute everyone's feed? That just seems wild to me. Is that a common approach or is it unique to HashNode?
Twitter also precomputes the feed. But only tweets from accounts without a significant following gets written to the follower's feed. The popular users gets a fetch the tweet on the fly approach.
Great article!
I learned a lot of new information. The most shocking part was discovering that feed preferences use a "ranking algorithm," not just machine learning. I always thought it was only machine learning.
It's also interesting that the feed is pre-calculated in cache before a user visits, saving computer resources.
Thanks, Neo, for teaching us this!
Great article Neo. Feeds are everywhere nowdays, Substack notes starts to gain popularity too. I'm curious to know how bad is the performance for non active users, who login after a long time with nothing in Redis :)
I don't know about Hashnode's case. But Twitter queries the database to create their feed/timeline for inactive users, so slightly slower than querying Redis.
ranking approach is not explained well, are they fetching IDs from the redis list(linked-list) and sorting and re-inserting or just interesting at the end of the list?