Friday, March 6, 2009

A rose by any other name

I recently saw a fascinating video about "Web Hooks:



The concept is not new (PayPal has done it for ages). It is not very complicated either -- and it is the very simplicity that I find fascinating: receiving changes to another application by specifying simple callback urls, such as

Call me at http://myapp.foo.com/purchase/item whenever an item has been purchased.


As simple as the idea sounds, its time had not really come before systems like App Engine made building and hosting web apps as easy as it is nowadays. But now times have changed, and it is becoming easier and easier to plug useful services together. Let's for example assume I built a warehouse management application and I wanted to provide integration with a shopping cart / store front. A site like Shopify makes it easy: just build a simple python handler, register the callback with the store and receive instant notification whenever a purchase happens!

While this sounds quite compelling in theory, not everyone is convinced that we are quite there yet, as shown by this comment on youtube:

The problem with the idea of web hooks is that there is no specification, so the parts can't interconnect easily. when an event is triggered, data needs to be pushed from a service to a client.

With no specification, there is no way for the client to know what format to expect the data in, or which fields will be provided. This makes interconnection hard, is the 'how' of this topic,and is the reason it has not yet exploded onto the scene.


This is a very valid point -- I looked into several of the systems mentioned in the wiki, and there are always subtle differences in how the concept is applied. Nevertheless, I am convinced that there are adopters out there that have used the concept successfully to build cool things in App Engine. Are you one of them? Post what you've done as a comment to this article!

(PS: The presenter of the tech talk above also has a blog.)

0 comments: