The ultimate goal for our subscription service would be as follows:
The logged in user should be able to subscribe to a particular thread and have a means of finding out when the thread has been updated. This notification on the main website should be similar to how we handle Private Messages and not spam the user, but provide a simple feedback on a new event. In the future, an ideal scenario would be to merge thread subscriptions, who quoted me, and private messages into a single system. The user lands on this to be determined area of their user profile that has a list of events pertaining to the aforementioned sorted by chronologically in a descending order. They'll be able to filter by event type (private message, thread subscription, and who quoted me). They can opt-in to a push notification system per event type. Private Messages can be an instant notification or a summary. Who quoted me can be an instant notification or a summary. Thread subscriptions should be limited to a daily summary.
Technical Challenges
Thread Subscriptions pose the technical challenge in that they are not well suited for the current infrastructure since it makes cache invalidation incredibly difficult. If a thread gets updated and ten users are subscribed to it, the cache system would have to invalidate n^10 caches. This is not good.
DynamoDB is a potential suitable service we would utilize to handle events.
Thread Subscription and Who Quoted Me events should be a chron job that only updates every x minutes (most likely on a per-minute basis)
This would ensure that we don't send an event every time a thread has been posted in. If a thread has 100 posts in 45 seconds, it would be silly to send 100 events to DynamoDB.
Private Messages can be instant events due to their inherent nature of replies being infrequent.
Goals
The ultimate goal for our subscription service would be as follows:
The logged in user should be able to subscribe to a particular thread and have a means of finding out when the thread has been updated. This notification on the main website should be similar to how we handle Private Messages and not spam the user, but provide a simple feedback on a new event. In the future, an ideal scenario would be to merge thread subscriptions, who quoted me, and private messages into a single system. The user lands on this to be determined area of their user profile that has a list of events pertaining to the aforementioned sorted by chronologically in a descending order. They'll be able to filter by event type (private message, thread subscription, and who quoted me). They can opt-in to a push notification system per event type. Private Messages can be an instant notification or a summary. Who quoted me can be an instant notification or a summary. Thread subscriptions should be limited to a daily summary.
Technical Challenges
x
minutes (most likely on a per-minute basis)