I played a good bit of soccer as a kid and even more in college. I mostly played defensive positions. One of the things I most appreciate about the game is that the smallest of errors can have game-changing impact. As a defensive player, an errant pass in the mid-field or a moment out of position in your defensive zone can result in a goal. To borrow a term I don’t really like, solid defensive soccer requires “constant vigilance”. As a defensive player, you have to have your radar up all the time; scanning, marking, closing gaps, nothing can get through. It is as much a mental exercise as a physical one. There is no room for downtime.
Which brings me to the real topic of this post; APIs. Twitter is perhaps the business most frequently associated with the term API. This week, when I think about Twitter, I think about soccer (the World Cup to be precise). And when I think about Twitter and soccer, I think about the fail whale. With the World Cup in full stride, I’ve seen a lot of him the past couple of weeks; you probably have too. The World Cup is wreaking havoc on Twitter’s infrastructure.
But, you know what, it’s OK! The worst thing that will happen is that your urgent tweet about what your dog ate for breakfast will not reach your several hundred loyal follows who are too busy tweeting about their own useless drivel to notice that they have missed this earth-shaking news that Fifi loves coco puffs. (See Tweeting Too Hard for lots of examples.) Twitter has lots of room for downtime, because it is not a mission critical application and there are limited consequences.
The fail whale has become a cute little visitor we cherish seeing every once in a while because it reminds us how frivolous our participation in the twitterverse has become. The risk, however, is that we develop a mental association between downtime and APIs. Lets not confuse the term API with what is behind the API; service delivery infrastructure. They are not one in the same. An API is simply an access point into an infrastructure based service. When it comes to understanding issues of downtime, reliability, etc., the service delivery infrastructure behind the API is what really matters.
Lots of APIs link to mission critical transactional infrastructure. Think payment services (IP Commerce, PayPal X); think about voice services (Ribbit, CloudVox, Twilio); think Internet advertising infrastructure, which is linked together through APIs. Unlike Twitter, the services behind these APIs are truly mission critical. One misstep and few thousand payment transactions don’t get executed, a couple of hundred thousand advertising impressions are lost. Downtime has consequences; they are economic, quantifiable and impactful. The high stakes are what make these services compelling, valuable and difficult to replicate.
In my opinion, the tech community has become way too cavalier about APIs. We can change that by understanding that when it comes to APIs, what is behind the API is what matters. So when you see that fail whale this week and start cursing that “boring, low scoring World Cup soccer thing”, remember that it is the constant vigilance required in soccer that makes soccer the World’s game. There is no downtime allowed in soccer; and we shouldn’t tolerate downtime in APIs that access mission critical services infrastructure. Then remind yourself, that Twitter does not qualify as mission critical and have a good chuckle about the absurdity of your Twitter stream.
UPDATE: Funny timing, but Twitter rate-limited its API several hours after I posted this. Mission critical services don’t get to automatically degrade the quality of service they provide by rate-limiting traffic. Lets not ever confuse Twitter with a mission-critical infrastructure service.