If a communication system is meant to be universal it should be able to do both push and pull types of communication, ideally it should let the sender and receiver cooperate on the subject of sending a message. The sender knows more about the information piece, the receiver knows more about his preferences, and for efficient communication we need to combine both sides. This shows that when the sender knows well the receiver, and is trusted by him, the push mode might be very effective, but it obviously can't scale (we can know well only a bounded number of others). This distinction between push and pull is about who decides about the instance of communication. This idea can be extended to cover not only the fact of communication but also the mode of communication such as asynchronous and synchronous communication. Mobile phones with Voice Mail and Silent Profile can be viewed as an example of how integration of pull and push can be done. == Unification == I think push and pull can be unified with the PublishSubscribe pattern. == Examples: == * email: in the original form push (lists are added to coopt the other model) * blog and generally www: in the original form pull * IRC: both == Identifying SPAM == There are legitimate methods for dissemination informatio for mass audiences, but all belong to the pull type. Spam is mass and it is push. ---- Related: SocialRouting, UseTheWholeSpectrum [http://www.corante.com/many/archives/2004/06/18/reid.php Re-ID] article and discussion on Many to Many. ---- == Discussion == Meta: I need a good name for those two modes. : Push / Pull? Publish / Subscribe (or Publisher Driven / Subscriver Driven)? -- PhilJones :: Thanks! ---- But now I wonder if thinking about SocialRouting means that "Push" and "Pull" are no longer sufficient for this classification. What about when I decide that my friend A should read something written by my friend B? It seems this could be a mixture : I ''pull'' something from B and ''push'' it to A. Or it could be a third kind of thing, a ''connecting'' in some way. Some examples, when I leave a link on your wiki-page, I may be mass-publishing a ''connecting'' from the thing I link to, to the readers of your wiki. When I automatically redirect something from an RSS feed I read into my own link-log. etc. -- PhilJones The example you give about routing is great to show how the vocabulary is usefull for description, you say this part is push and this part is pull, of course the whole process cannot be described as either push nor pull, but that's OK. Where it really falls apart is when you have multiple channesl of communication to one person - then the sender can choose a channel, and thats push, but the receiver can choose if he want's to read that particular channel, that's pull, I believe this is the most effective way of communication and this is how we can have both push and pull in one tool. -- ZbigniewLukasiak I am currently thinking that PublishSubscribe should solve all the problems here. -- ZbigniewLukasiak