I\'m wondering what would be the best way to design a social application where members make activities and follow other member\'s activities using Google AppEngine.
Robert, about your proposed solution:
messages = Message.query(Message.receivers == user_id).fetch(projection=[Message.body])
I think the ndb.TextProperty "body" can't be used with projections because is not indexed. Projections only support indexed properties. The valid solution would be to maintain the 2 tables: Message and MessageIndex.