An XMPP Microblogging Stack

September 15, 2008

XMPP is perfect for microblogging, but so far no one is backing that up with an implementation. Inspired by Stefan’s post, a few of us are gearing up to take a crack at it. I had separate conversations recently with Anders and Matthew about what an XMPP microblogging service would look like, and I think the best way to kick off the project is to collect my thoughts here for others to comment on and discuss. How would we build an XMPP microblogging stack?

:EXTENDED:

The Requirements

What will this microblogging service do?

I’m sure we will think of more, but I think this covers the basics. Future additions that come to mind are creating a microformat for Web based service discovery and the ability to point to a canonical microblog location with PEP if you have multiple Jabber IDs.

The Design

The XMPP API will leverage existing XEPs for core functionality.

We’ll be trying not to add much to the HTTP API to maintain close compatibility, so I won’t discuss that here. Most HTTP API operations will just be converted into their equivalent pubsub operations.

The Web site will be designed similarly to Laconica. Items will be read from the database to create the pages, and memcached will be used to make it fast. The main difference is that Strophe will be used to update the page in real time.

The Implementation

I know that Anders is pushing for Rabbiter, so we will be discussing that I’m sure. What choices we make for various pieces isn’t really that important, although I will probably advocate for Django and CouchDB at the start.

Aggregation

We also plan to develop some aggregation tools. These will consume public feeds from other OMBs vis pubsub or HTTP push and offer them up as combined pubsub feeds. This will be the XMPP equivalent of Planet.

Looking For Feedback

I talked to several people at BearHugCamp about this, and people seemed quite excited. We’d love more feedback from the OMB and XMPP communities these ideas. Please leave a comment!

An XMPP Microblogging Stack - September 15, 2008 - Jack Moffitt