Friday, March 13, 2009

APIs Do we need a seperate Infrastructure ?

We as an industry have been talking about apis since 2007 (when web sites become web services) and with the recent success of guys like twitter (Twitter Traffic is 10x times its site) we are starting to hear more about apis.

My colleague (Greg) recently blogged about what is an api, it gives a good definition of what an api is and raises some important questions that everybody needs to ask, whoever is looking to build an api.

As a company/user who is starting to go down the API path the subsequent question that it needs ask is do i have an existing infrastructure which can handle the requirements rasied by Greg.
Some of us might say yes, we have the infrastructure to do that or there are existing products which can help me manage my apis, but do we have the "complete and comprehensive infrastructure" to cover all the requirements.

I can possibly take an existing open source stack or some Middleware product and say it provides me the capabilities but does it also do the following

  • does it give analytics for e.g. Netflix launched a API and is now integrated into Facebook, Netflix would be intersted in knowing what are the top apis, who drives more traffic facebook or myspace in other words can the infrastructure provide me with information to make business decisions.
  • Does the infrastructure provide me with SLA and alerts so that i know when my api is down or not behaving properly.
  • How flexible is the deployment model of my apis so that it can change to the ever changing business needs, in other words what is the life cycle management of my apis in a ever changing world
  • If i am Boeing who is exposing an api to my partners can i assign different rate limits to different partners , i am paranoid about security/compliance/data security can the api infrastructure help me with that.
  • Does it do intelligent caching
  • If i am an enterprise who is consuming a lot of web Apis how can i use this infrastructure to manage and control the apis i am consuming within my enterprise (this is a discussion for another day)
On top of this do i have a robust infrastructure to scale to the requirements of the web. (Each of the requirements above probably require a dedicated blog so that's a task for some other day)

Today is the day to ask whether we need a seperate infrastructure for apis and if yes then let ask for one.

Would like to hear from people producing and consuming apis what are some of the problems you have been facing and how are you planning to solve them.