Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat is the best (scalable, fast, reliable) approach to implement an Activity Feed, Messaging Queue or RDBMS or NoSQL DBs?
    text
    copied!<p>I need to build an activity feed (stream? A "lifestream" to be more accurate.) for a system similar (same) in resemblance to many popular social networking platforms. My initial attempt was to use an RDBMS but quickly dropped the idea due to the vast amounts of JOINs needed. Scavenging for other possible (and better-suited) approaches, I stumbled upon the following post:</p> <p><a href="https://stackoverflow.com/questions/762490/how-do-social-networking-websites-compute-friends-updates">How do social networking websites compute friend updates?</a></p> <p>Taking the advise to make use of a message queue, I have spent some time studying RabbitMQ and its PubSubHubbub protocol. And I postulated the following approach:</p> <p>1) Each user has a "topic"<br> 2) Other users subscribe to the topic<br> 3) When the user performs some action, a message is published which is then related (References resolved), formatted (Human-friendly language, links, etc.) and aggregated (X, Y and Z have commented on post P) with a PHP-script.</p> <p>However, I would still have to go through each message and process it (unless my approach is completely wrong). So, what would the difference be between storing everything in a RDBMS and using a message queue (other than the implementation of the PubSubHubbub protocol)?</p> <p>Are there more efficient ways to build such a system? (If so, please specify)</p> <p>Comments / Suggestions / Criticisms are welcome. :)</p> <p>Thank you in advance!</p> <p>P.S.: There is an interesting article on how FriendFeed implements it ( <a href="http://bret.appspot.com/entry/how-friendfeed-uses-mysql" rel="nofollow noreferrer">http://bret.appspot.com/entry/how-friendfeed-uses-mysql</a> ). However, I feel the "hackery" pushes MySQL out of it's comfortable domain (which is simply Relational Data and what would be the point of using an RDBMS without relational data?)</p> <p>P.P.S.: Another issue using a message queue that I see (perhaps, due to me being new to this technology) is that once the message is fetched by the "Consumer", it is removed from the queue, however, I want it to persist for an arbitrary amount of time.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload