The Good Stuff
From OStatus Community Group
PuSH is a low-level piece of the puzzle; it's just a way for services to send updates to each other. For a fully interactive social network, you need that human touch... you want to know who's subscribing to you, which of your posts they like, and you want to get their replies to you.
For this we're making use of more extensions that build on top of Atom feeds: Activity Streams, Portable Contacts, and Salmon.
Activity Streams extend Atom feeds to describe social "activities" more specifically than just "ok here's a post". Entries are marked with a verb (post, follow, favorite, etc) and more detail on who or what's being acted on. We've extended this further using elements from Portable Contacts to provide profile information.
Salmon was created as a way for blog aggregators to send comments back to the original blog server, "like salmon swimming upstream". We're using this channel to send replies as well as other user-to-user events.
When your friend on Example.net subscribes to a Yoursite.tld account, Example.net sends an Atom entry with an Activity Streams "follow" verb to your Salmon reply channel on Yoursite.tld. This lets Yoursite.tld know who subscribed to you, so their profile gets added to your subscribers list and you get a notification that they're following you.
If your Example.net buddy gets social network overload and decides to unsubscribe from you, another notification comes through about the unsubscribe, and we can drop them from the list.
Other events can be sent over this channel as well, such as when your friends on other services mark your posts as a favorite.