Skip to content

Design Principles

Thomas Themel edited this page May 18, 2015 · 5 revisions

Introduction

We wanted to give some background on the design principles which shape the PubSubHubbub protocol.

  • Keep pub & sub simple. Complexity at the hub. There will be tons of publishers and tons of subscribers. We want to keep that process simple. Relatively few people will run hubs, and those who do will know what they're doing. As such, we push complexity to the middle (the hub) wherever possible.
  • Pragmatic. This isn't a perfect protocol, or theoretically pure. What it is, however, is pragmatic, solving huge, known use cases with minimum effort. The use of Atom could've been avoided, for instance, but Atom doesn't actually bring much overhead and gives us everything we'd need anyway (unique ID, date, opaque content body).
  • Bootstrappable. We wanted to solve all chicken-and-egg problems and make something that people could start using right away with minimal efforts. This includes our open, reference hub. The hub we're running at http://pubsubhubbub.appspot.com/ is open for anybody to publish to or subscribe from. This lets people start experimenting with the protocol immediately, without running a hub, or waiting for others to run a hub.