Yes thats it - perhaps the word stream is not the most appropriate. If i read a book which is say horror - in your app that can auto subscribe me to books that are of the horror type. which again is just following a book type. But the streams and subscribers principle works for lots of solutions. email or chat, and activity logs. comments. just use your imagination.
Assuming that perhaps your plan is the have activities and share them with followers - which might just be what books they are reading all you do is send a message to a stream. "hello world" to " user/martin/stream/public_activities - if public facing users are subscribed they will get the message. Or "Hello World" mail/martin/inbox". Of course in a real world mail system you would put a copy in the senders sent and a copy in the recipients inbox - but thats easy. [mail/steven/sent,mail/martin/inbox] # just a simple message class with subscribers - this can be far more imaginative class message(db.Model): sender = db.StringProperty() body = db.TextProperty() class message_index(db.Model): receivers = db.StringListProperty() #streams def put(stream): #puts a stream list in a message receivers list #should start a worker to append the past list return def move(from_stream,to_stream): #replaces a stream with a new stream inbox----.spam #should start a worker return def delete_stream(stream): #removes a stream - this is useful for unsubscribe #should start a worker return As simple as this approach is it just about covers - activity walls, email,comments and so on - one concept is lets say I want to flash messages to my users "your are now following martin". I just have my Ajax or static page "listen" to 'user/martin/flash' and send info messages to 'user/martin/flash' so when someone unsubscribes, a message is flashed to inform them the request was completed. Of course you would need to add some security measures to the stream class and a mechanism to remove messages - i.e spam folders would clear say every 7 days, flashed messages once read clear instantly, in-box messages may live forever. Of if you want to save memory and have millions of users have a "mail/martin/saved" stream and then add a save message button to emails (all that does is use the message.move(...) method and then set in-box to keep messages for say 90 days and the save box to be 'permanent' As you can see the stream method now has some very useful functionality from just a small amount of api. Well that's how i am thinking, maybe this can work for you. Regards Martin Webb The information contained in this email is confidential and may contain proprietary information. It is meant solely for the intended recipient. Access to this email by anyone else is unauthorised. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted in reliance on this, is prohibited and may be unlawful. No liability or responsibility is accepted if information or data is, for whatever reason corrupted or does not reach its intended recipient. No warranty is given that this email is free of viruses. The views expressed in this email are, unless otherwise stated, those of the author ________________________________ From: stefoid <stevenmath...@yahoo.com> To: Google App Engine <google-appengine@googlegroups.com> Sent: Thu, 8 July, 2010 7:07:19 Subject: [google-appengine] Re: list-property, many to many, 5000 indexes...HELP! oh, wait. If I replace your word 'stream' with 'follower' like a twitter follower, then I think it immediately makes a lot more sense. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.