I am curious about these three questions when building a push-based(write fanout) feed system:
- How does it handle the unsubscribe logic?
To me, it seems to me that we have two choices: delete or keep the history data from one’s inbox.
If we choose to keep it, does it mean that when processing the timeline read request, we have to do another step of filter -- to check whether the author of the message retrieved from the inbox is still included in the requester's following list or not?
- How does it handle message erasure?
For example, when an author deletes one of his blog, it seems to me that the design decision here is also similar to unsubscribe.
- For a new-registered user has empty following list, when he/she follows a new user, what should we do to fill his/her timeline, back to pull-based method?