RSS and Atom Feeds have been around for a long time, and they are great at dispensing the content of a blog or site in an easy to consume format. However just like the home page of the blog, they are just files, sitting on a website waiting for someone to fetch them. When I write a new post, or change an existing post, people who subscribe to my feed must fetch the feed again in order to know something has changed.
Most feed fetchers do this by what is called “polling,” which simply means every X minutes, it goes and fetches the feed again and compares it against what it got the last time it checked the feed.
PubSubHubbub allows feed fetchers to instead subscribe to get notified whenever there is a new post on a feed. I won’t bother going into the details of how it works here, but the basic gist is that whenever your blog (the “Publisher”) gets a new update to it’s feed it posts this just once to the Hub (a server that handles the bulk of the process). The Hub then looks through it’s list of Subscribers, and does an HTTP Post to a callback url provided by each subscriber, which includes an abbreviated version of the feed’s contents (just the post(s) that have changed) which the subscriber can then process immediately, rather than waiting till it’s next scheduled update time.
Simple in theory, in practice it’s been a pain to work with.