Burning Down the House: AMQP revisited

pieterhpieterh wrote on 22 Oct 2012 11:25


When the Wikipedia page for a contentious topic shows no real argument, you know someone with time and money has something to hide. And AMQP is certainly contentious. In my experience, and because I'm observant, rather than sensitive, the AMQP/1.0 authors are simple bullies who believe might makes right. But one learns to fight back against bullies, because, karma. I'm going to coin a nickname for AMQP/1.0, which is the "Burning Down The House" release.

Kelly, those screams you hear from current AMQP adopters aren't the screams of ignorance. Explaining nicely why AMQP/1.0 is so much better, technically, misses the point. Worse, it adds insult to injury. Oh poor AMQP/0.9.1 user, not only are you trapped in a burning house, but it's your fault, for being so bloody ignorant.

The AMQP Working Group built a house, then invited people in for barbecue and free beer, and then deliberately burnt the house down, with the doors locked, because they weren't happy with it.

Passing the buck to OASIS doesn't absolve the AMQP working group of a massive failure. Every single person associated with the AMQP/1.0 release should be, metaphorically, tarred and feathered and banned from ever again participating in a standards effort. Their names should be listed on that sanitized, purged Wikipedia page. AMQP/1.0 will go down in history as a prime documented example of how to fail a standardization effort and hurt a lot of people in the process.

Easy prediction: the screams of anger and pain from the AMQP community are going to get louder as they realize just what's happened. In part this article is a careful, deliberate move because I don't want that anger bouncing back on me and my work. But also, it's an excuse to hit the bullies with a stick, because, karma.

The calculation of the AMQP/1.0 authors, and those who support them, is that the pain inflicted on the AMQP community is worth the benefits. I've written before that large rich firms don't feel pain like normal people. But they're also incredibly selfish and shortsighted.

AMQP/0.9.1 is legally and technically dead. The old spec is copyrighted by the AMQP Working Group and not remixable. There are no mechanisms for extensions, patches, fixes, anything.

AMQP/1.0 is touted as an upgrade for AMQP/0.9.1 when it's not. The two operate at different layers. One is a transport layer, one is a model layer. A healthy stack would swap transport layers over time and keep semantics compatible.

The pain that AMQP/1.0 will cause was entirely avoidable. It was plausible to replace the 0.9.1 transport layer but keep the exchange-binding-queue semantics. Even offer a gradual migration to other semantics. The 1.0 authors just couldn't be bothered. A matter of pride and greed. The house had to go.

95% of the AMQP community has invested in a dead standard. I count 4,528 repositories on GitHub that refer to AMQP. There are 244 that refer to AMQP/1.0. That makes 95% of the community wrong. This isn't marginal.

There is no documented cost/benefit argumentation. The costs of change cannot simply be ignored. There must be argumentation, explanation, justification for what is so wrong with AMQP/0.9.1 that it had to be destroyed.

AMQP/1.0 does not define semantic interoperability. The primary requirement for AMQP (to ensure interoperability between implementations) has been dropped. It's up to each vendor how they do messaging.

AMQP/1.0 is great for big vendors, tragic for users. The only value of a standard is to level the playing field so clients can choose vendors. AMQP/1.0 doesn't level the field, and is barely worth calling a 'standard'.

The whole point of the AMQP/1.0 change was to screw users. I can't believe a determined five-year effort to tilt the playing field against competition was just stupidity. The goal is control over the billion dollar messaging market.

And finally, AMQP cannot survive this event. It's quite simple: AMQP attracted the pioneers, the leading edge. It's these people who invested most in that house that is now burning up.

When we at iMatix quit the working group and shuttered years of work (and really, read the OpenAMQ docs and realize this wasn't a toy project but a massive and sincere effort), it was because we saw the lunatics pouring gasoline, tried and failed to stop them. We described the problems in detail, and we built 0MQ as a safe refuge for anyone who would listen. But the barbecue and free beer continued, pulling in thousands of engineers, some of the best of a generation.

So if you invested in AMQP, like we did, and find that you really don't have much say in the future, what can you do?

Here's my answer: come to the 0MQ community. We also have a peer-to-peer transport protocol but it's kind of simple. We have independent implementations in several languages: C++, Java, Flash, Bash (yes), Node.js, even JavaScript in the browser. The main C++ stack has 40+ language bindings.

You'll find a community that owns what it makes. A community that enjoys itself and rarely argues, because hey, send a patch. A contribution process that is perfectly fair, open to all, and coherent. You'll find that whatever you were trying to do with AMQP you can do with 0MQ, with less stress and more fun. Of course the two technologies aren't the same. One is dead, one is very much alive.

We built 0MQ so that messaging would be fun again. We built 0MQ to kill AMQP/1.0 when it finally emerged, to keep messaging open and free to all, because we believe it's essential. We built 0MQ so that our messaging protocols would never be owned by greedy, selfish fools who treat quarterly profits as more valuable than community. Help us make that happen and teach the bullies a lesson. Because, karma.


Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License