I'm Brett Slatkin and this is where I write about programming and related topics. Check out my favorite posts if you're new to this site. You can also contact me here or view my projects.

14 July 2012

Building Incorruptible Infrastructure

I wish Dalton and App.net luck with their new endeavor. I've pledged $100 to be a developer, but my support is no different than how I'm now Tweeting and Tumbling. It's just another way to connect with an audience. It won't be the primary platform that Dalton describes he's building.

App.net cannot achieve their goal of being such a platform until they make a commitment to federation. Federation means many independent entities acting as one cohesive organization (imagine hundreds of Twitter-like services exchanging messages). Federation is the fundamental property that has made the Internet successful.

Quickly: Why is federation important?

Because it:
  • Universalizes the medium, so any browser can access any content, anywhere
  • Isolates organizations, so if a site goes down (or out of business) other sites remain
  • Decentralizes infrastructure, so failures in the grid have limited impact
  • Levels the playing field, so small companies can compete and diversity blooms
Sound familiar? It should because these are the core attributes of the Internet.

I appreciate the sentiment behind focusing on good will and developer trust. But I think it overlooks the realities of the situation. When you have assets (like intellectual property), your company can be bought, you can lose control, and your relationship with your users can be undermined. To deliver on the promise App.net needs their principles to be intrinsic properties of how the system is built.

Fluffy metrics don't matter

What strikes you when you read how App.net can scale to 200 million API calls a day? For me it's "Who cares?!" I want to know what will happen when App.net's primary datacenter goes down. Twitter still can't deal with that properly. For infrastructure, consistent performance is more important than top speed. The cliché analogy here is that App.net will be like a Ferrari: Very fast when it works, but in the shop being repaired most the time.

No matter how awesome you think your code and web servers are, it's more reliable, faster, and better for users if multiple independent sites interoperate. App.net should strive to be the best node in the network, not the only node.

Realizing the dream

Building a platform that is incorruptible is the goal of App.net. Open sourcing all of their code could be one way to achieve that. Becoming a B corporation may be another. I think federation is the only way. Federation doesn't have to come immediately; I understand App.net needs to gain momentum first. But it's essential that they make a commitment to federation long-term. Anything else will be on the wrong side of history.
© 2009-2016 Brett Slatkin