Twitterific? Distributed Versus Centralized Systems

Yesterday, while catching up on some blogs I came across Chris Shiflett’s I Almost Get Twitter post. I’ve managed to avoid Twitter so far, but decided to check it out yesterday (you can follow me if that’s your thing). It seems like a cool concept, but I keep thinking its just a fancy micro-blog with a built in aggregator and a very nice, centrally located point of failure.

Case in point, yesterday when I was filling out the registration form I put in my normal username, tswicegood. On the first pass it told me that the username wasn’t available. I go to that user’s supposed page to see what’s up and I get the standard “I didn’t find it, but try a search why don’t ya?” page. I switch tabs back to the registration, enter my username again, and now I get the green go-ahead telling me that the name is available.

A couple of other things didn’t work like I expected. I know I updated my profile yesterday with my website and name, but this morning they weren’t there when I loaded it up. In browsing around for people I’d be interesting in following, I kept getting some nice javascript alerts while just scanning the page if I had clicked “follow” one too many times.

Don’t get me wrong, they done a lot of work to get something like this off the ground. The tie-in with all of the various IM and SMS services is pretty cool. I use Adium and my Jabber account to get notifications and send updates. The site is like any other Rails site, easy on the eyes and relatively straight forward to navigate, but I kept thinking “why am I not just hosting this myself?”

It goes something like this in my head… I setup lifestream/twitter/junk/random/whatever.travisswicegood.com. It’s a blog in miniature that I impose length limits on myself as to what I’ll post so it can be sent via SMS. Of course, it would be available as an Atom/RSS feed so you could follow it at your leisure, or you could “Follow” me by giving me your site your whatever.yourname.com site and my site will add you as an Observer to be updated every time I add something.

Both sites implement a standard API for notifying the other of an update. The updates could be pushed, but I would probably just do a ping so you can download the update now or queue it for later when bandwidth is cheaper or you’re actually going to read it.

Now we have a decentralized system so when my server goes down, everybody else keeps clicking along. There’s only two things that it doesn’t do:

  • there’s no SMS/IM gateway in place
  • there’s no random social element to it

The first is easy enough to address. Jabber/GoogleTalk uses an open protocol so you can talk with them without any issue. AOL also has an API for talking to AIM and I imagine Microsoft and Yahoo! can’t be fair behind if they don’t already have APIs accessible. AIM also offers IM to SMS messaging via their client. If that works via the API you’ve got text’ing for free. If not, there’s plenty of SMS gateways (free and fee) available to fill that need if you have it.

The second is where sites like Twitter come in. You have centralized sites that will aggregate everyone’s update. Those aggregators will ping people to let them know when particular keyword that they’re tracking is noticed and any number of other conditions nobody’s thought of. If you provide an open API to be an aggregator, all sorts of new uses could come up. I could aggregate for my family, planet-php.net could aggregate for PHP developers, companies could aggregate their employee’s messages, etc., etc.

And for the first time in a long time, I’m at a loss for how to wrap a post up. I guess that’s what I get for posting something that’s a random thought process from the drive to and from KC last night :-) For all of my rabid readers, it might interest you to know that this is my 1,000th post.