Google App Engine - How to implement the activity stream in a social network

Posted by spidee on Stack Overflow See other posts from Stack Overflow or by spidee
Published on 2010-04-23T07:30:17Z Indexed on 2010/04/23 7:33 UTC
Read the original article Hit count: 250

Filed under:
|
|

I want some ideas on the best practice to implement an activity stream for a social network im building in app engine (PYTHON)

I first want to keep a log for all activities of each user - so that we have a history. i.e. someone became a friend, added a picture, changed their address etc. This way we have a users history available should we need it. Also mean we can remove friendship joins, change user data but have a historical log.

I also want to stream a users activity to their friends. for this only the last X activities need to be kept - that is in the scenario that messages are sent to friends when an activity occurs.

Its pretty straight forward designing a history log - ie: when, what, where. The complication comes as to how we notify friends of a user as to their activity.

In our app friendships are not mutual - ie they are based on the twitter following model. Some accounts could have thousands of followers.

What is the best approach to model this.

  1. using a many to many join table and doing a costly query -
  2. using a feed class that fired a copy of the activity to all the subscribers - maybe into mcache? As their maybe a need to fire thousands of messages i would imagine a cron job would need to be used.

Any help ideas thoughts on this

Thx

© Stack Overflow or respective owner

Related posts about google-app-engine

Related posts about friend