Monday, August 18, 2008

AMQP: Involve End-User Developers

I had a chance to sit down at a pub (fabulous network effects having tech clusters provides, even if most of us in London are working for financial firms rather than software firms) with Alexis Richardson of CohesiveFT, one of the firms responsible for the RabbitMQ AMQP broker, and we had a chance to thrash out some of the issues and concerns that I've had with the current AMQP 0.10 draft and what it might mean for the eventual 1.0 release. This is the first post on some of the subjects that we discussed.

The first thing that the two of us were completely in agreement on was that the AMQP working group should have some mechanism for people like me to get involved. What do I mean by "people like me?" Well, I don't work for a vendor, but I am conversant with MOM products and standards, and I write applications that make use of MOM technology as part of my job. I don't have time to act as a full working group participant, but I have some bandwidth that I could use to provide feedback on certain areas of the spec. This, to me, would be a pretty useful thing, because vendor-heavy standards bodies tend to produce specs that most strongly correllate with what it is in the interests of the vendors, rather than the developers.

Furthermore, the non-vendor group (the User SIG, which disbanded after the Business Requirements document was produced, and is now part of the Management SIG, which appears to be almost nothing other than vendors at this point) seems to really be fixated on some problems which I don't believe the vast majority of MOM-based applications face. True, there are quite a few B2B MOM systems, where MOM infrastructure from one firm communicates directly with that of another firm through an automatic mechanism. But that's not most applications that I've seen, and the fixation that the Business Requirements has on inter-firm B2B MOM has is, at best, superfluous to most MOM applications. Most MOM applications never leave the firm.

So how do I get involved with AMQP? I can't see an easy way other than ranting about something on a blog that nobody reads, except that Google Alerts alerted someone to it, and hoping that people find me and ask me or challenge me. That doesn't seem right to me. I don't know what the solution is, and maybe the blogging thing is the solution, but it seems like there's got to be a better way for me to get more involved without going to the point of fully joining up with a SIG, which I don't really have the time for.

After this, Alexis alerted me to a blog post by Guy Crets explicitly questioning whether AMQP, even if all it does is help individual internal-software developers write better applications and never ever hits the b2b federation issue is worthwhile. Yes! Yes, yes, yes, a thousand times yes! Moreover, it needs to do that in order to get the type of momentum to even hit the federation stage.

Standards like this have realistically two ways of getting adoption: top-down or bottom-up. The top-down approach is that a bunch of vendors get together and write a spec and develop products that adhere to the spec and then ram it down my boss' throat who tells me to use it. Then you make sure that every vendor is on board, and you have the combination of management pressure and vendor support to drive adoption. And you better make sure that my manager has the ability to force technology on me, which usually means I would be working for a rubbish organization using Visual Basic or something.

The alternative is to get the people actually writing messaging applications based on the spec from an early stage. That means that you have to engage the early adopters, and not only the standard "my first app using X" blog post just to hit the front page of Proggit or something, but the people who are doing real development. Get so much code out there that works with the standard that it becomes de facto instead of de jure, and then everything flows from there.

I think you can tell which I prefer, but to get there, you have to be quite open that you want developers, even those who aren't running the NYSE or FedEx or Safeway or something like that, on board early. Given some of the comments on some of my blog posts, I don't think the AMQP working groups necessarily have that mind-set. But it's critical. I don't support a monstrous B2B automatic logistics tracking system. I work on asynchronous messaging in a financial services context. But there are a heck of a lot more of me than there are Walmart-level procurement applications, and a heck of a lot more broker instances at my scale.

Find a way to get application developers absolutely thrilled, and everything else will follow. Make me happy.
blog comments powered by Disqus