on Jun 30th, 20083rd Party Application Integration - Implications
Quite recently there have been many apps that have added the ability for third party applications to plug into the main app. Some examples include Myspace, facebook, iGoogle, Okut and currently Yahoo Search ( thanks to SearchMonkey). The intent is to improve the usefulness of the main application in turn make these otherwise undiscovered third party applications popular. The third party applications thrive on the popularity and traffic of the mother app. The popularity of third party apps have spawned an entire eco-system of app builders who target exactly these platforms and hope to cash in on the phenomenon. Social applications are green pastures for such application builders, who hope to reach a large audience by utilizing this community as a service.
Now most of these apps are pretty alright, but most of them just break and compromise the entire user experience. Facebook is currently the site that is facing the app overload problem. Too many apps clutter and spoil the entire facebook experience.
The other problem is that most mother applications are huge in their own right and drive a lot of traffic. In that case there should be some guarantee that the plugins also scale equally. This is a problem I have faced after integrating searchmonkey applications on Yahoo Search and also some apps in Facebook. Unanticipated loads on third party apps wreck the app and most of them dont scale and all they do is spoil the UX of the app as a consequence. My StumbleUpon addition to Yahoo Search just didnt work the first few days and I could only read a “This plugin is not available right now” message. In another instance, I integrated an app on my blog and the problem was that due to the right sidebar, my content wouldn’t load until the third party app loaded and when it didnt, the blog would serve up nothing. There is no way for the mother app to figure out whether the third party app is available and running. If it isnt available then dont publish it onto the clients interface, thereby retaining the users experience.
In fact, for any third party application, there must be some scalability requirements enforced and only when they meet such requirements should they be allowed to publish. An alternative would be for the mother app to build its own cloud and make sure that the 3rd party application uses that cloud so that its highly available ( Case in point Google’s App Engine - Use for widgets). Or, there must be some load test designed when the 3rd party app registers with the mother app ( ex : Automated load tests on sites like TopCoder ). An even more elegant way of figuring out scalability problems would be to statically analyze the submitted code to check for bottlenecks and other possible leaky parts of the code and then reach a decision whether to allow for the code to run or not. Until such rigorous checks and constraints are not enforced, third party apps will keep ruining our experience.
Tags: cloud, facebook appliation, third party applications, static analysis