AMQP. Advanced Message Queuing Protocol. Protocol Specification. Version -1, the Advanced Messaging Queue Protocol Specification. The Advanced Message Queuing Protocol (AMQP) is an open standard application layer The AMQP specification is defined in several layers: (i) a type system, (ii) a symmetric, asynchronous protocol for the , published in December , published in February and , published in November Protocol (“AMQP”) Specification and (ii) the Licensed Claims that are held by the Authors, all for. the purpose of implementing the Advanced Messaging Queue.
|Published (Last):||12 December 2013|
|PDF File Size:||16.14 Mb|
|ePub File Size:||4.72 Mb|
|Price:||Free* [*Free Regsitration Required]|
AMQP is an attempt by some very large businesses, and some smaller suppliers, to change the rules in the business messaging market. In some ways, they are succeeding. This is a market with two dominant suppliers, IBM and Tibco, and a serious specificatio of open standards and open-source competitors.
It’s bad for clients, but also for vendors. And in technology, all new wealth is created by building layers on top. Sterility is good for no-one: Now look at messaging… only in the Java world do we see some growth above messaging.
But that’s not enough. Let me explain very briefly how standards work. You might think it’s all about making revolutionary new concepts available to the public. In fact, standards are more about stopping innovation than opening the door to it.
Well, to be accurate, by freezing innovation at one level, we allow more of it at higher levels. So standardization always works from the bottom up, from more basic and broadly-used technologies to more sophisticated and narrowly-used ones. Over time the stack of standards gets compressed like seams of sediment, and unused stacks fall away, leaving fewer and fewer basic standards underpinning the whole world of computing.
It is also unusually ambitious in going from very low level data on the wire to very high level application semanticsin a single leap. More on the wisdom and execution of that ambition later.
RabbitMQ and AMQP 0-10?
The economic basis 010 making standards is the concept we call a natural monopoly. This means at least in this context that a successful standard will attract and hold all users. Currency is an example: Possessing any other currency means you can’t trade, or only at a penalty. Similar natural monopolies would be rail transport, electricity, phones, the Internet Protocol.
You want your toaster to plug into any power socket.
Compatibility and Conformance
You want your phone to reach anyone and be reachable by anyone. When a successful natural monopoly emerges, thanks to luck or regulation or market forces, it eliminates a lot of waste, amql called “friction costs”, “transaction costs”, specificafion perhaps “excess profits”.
Natural monopolies can create huge value. Vendors, those selling stuff, have a corresponding incentive to try to capture that value, restoring the profits that would be lost by too much of Adam Smith’s invisible hand. The natural monopoly can benefit users, by releasing value. But it can also punish them, by capturing them and then taxing them without mercy. Your mobile phone bill is a case in point. There is thus often a fundamental conflict of interests when vendors get engaged in standards setting, which is ironic since almost all conventional standards consortia are driven by vendors.
How to release all that trapped value and yet catch some of it? In conventional standards consortia, the answer is to use patents specifucation other forms of control.
Thus the Digital Standards Organization – disclaimer: I am one of the founders – defines an open standard as one that “is immune, at all stages of its life-cycle, from vendor capture”.
A neat one-liner spfcification annoyed many people but inspired many others to take a closer look at this conflict of interests. People sometimes ask, “what makes iMatix different from other vendors, then?
Each vendor has the choice of trying to capture the natural monopoly, or competing on quality and performance. The best strategy depends on the size and market position of the vendor. Small, agile vendors like iMatix benefit from competition.
Even in a competitive market, customers will pay happily for the best solutions. And, a successful open standard forms the basis for growth into many new future markets. AMQP addresses a market with huge captive value. The incumbents charge more or less what they like, particularly on the after market for expert services, which is orders of magnitude larger than the upfront software license costs.
There are no serious open source alternatives. There are no serious open standards. So AMQP was born with the mission to go out there and turn messaging into a boring solved problem, a natural monopoly, and release the captive value of the messaging market back to the clients and to future businesses. It’s succeeding, in several ways. First, people have bought into this ambitious vision and are taking AMQP seriously as a solution. That is, there seems to be general agreement that AMQP’s mission statement makes sense.
Second, there are already some very large projects where open source AMQP-based solutions are winning over traditional messaging. But like all young things, AMQP has some problems. The specification seems to be out of control, getting more and more complex without a clear plan or architecture.
AMQP products don’t interoperate except in some limited cases. Core protocol aspects are unstable, and more ambitious functionality not happening. The Working Group is getting tired, and many of the original developers have burnt out. These are good engineers, like one of my team, who started hacking the Linux kernel when he was If iMatix wants to waste its time and money, fine, but please don’t ask me to work on this project, or I will quit.
His immediate and unforgiving critique of the internals of the sausage machine was sad, but not wrong. I was waiting for his opinion to confirm or challenge my own. Shortly afterwards, iMatix decided like some of the other participants to pause all investment in AMQP and wait for things to proceed as they would. Today, the AMQP plan is close to failure, the vision is coming unravelled. Furthermore it’s been a predictable slide, clear already in late The Working Group discussions are public, now, but discussions of problems are taboo because “it scares potential customers”.
What is more likely is an slow implosion of the Working Group as it finds itself about to break one more promised deadline, and unable to agree on how to move: We spent so much on this that it almost bankrupted us in past years, not to mention burning out several valuable people on our team.
If AMQP does go wrong, we have a serious problem. The risk to my company is so disproportionally high that not doing everything I can to resolve it – including writing this article – would be a failure of management. AMQP’s risk of failure has become increasingly certain over time.
What is wrong with AMQP (and how to fix it) – High Performance Solutions
As I explained, any potentially lucrative specificagion is going to be fair game for the worst kind of fights. As soon as people think, “this protocol means new business”, they then think, “how can we kill the competition”, without realizing that their competition is helping to actually build their future market. To some extent, this is a normal part of the process: As a new open standard in specificaion lucrative business area it was going inevitably to hit the “vendor capture” conflict of interests, and either solve it, or die failing.
That means actively opening wounds, no matter how painful, examining the causes, and without pity, pride, or shame, make the necessary surgeries.
AMQP Working Group 0-10
My view of design work is, “the more you know about something, the harder it is to solve it. But the point is this: There is lots of deep technical competence around: The way to solve complex problems is to make it easy for others to solve them.
This is where competent engineers often fail: Complexity is a human issue, and good design is about overcoming human limitations, not technical ones. Paul Gerrard wrote that “software does not obey the laws of physics”, comparing software engineering to the building of bridges. My answer, at a conference round-table discussing this quote, was, “software does obey physics, but it’s the physics of people, not bricks”. Software standards are no different. The problems with AMQP are all, without exception, about our failure as a Working Group to understand and resolve our own human limitations.
Through various combinations of the seven deadly biblical sins we failed to understand the physics of people, and focussed only on the technology of messaging. The results today are: Some will accuse me of making the problem worse by writing this. Like Brian in his Life Of, my answer is, “make it worse?
How can it possibly be worse, I’m already going to be crucified! Not learning and recovering from failure is unforgiveable. Unexplained failure of a highly publicized and rather expensive project is a career killer. This article will look, hopefully without pity, pride, or shame, at AMQP and what is wrong with it. I hope to help AMQP work as it should have, but also provide insights for reuse elsewhere. In each part I’m going to look at one aspect of the puzzle, and make proposals for fixes.
People who today read the AMQP specifications tend to make one main complaint: This is a justified complaint. Complexity is fatal, it is the garden of thorns around Sleeping Beauty, the minefield and high wall around a technology that keeps people away.
A complex AMQP cannot be implemented by small teams, cannot be used in small projects. We saw multiple teams take the spec, read it, and make implementations that interoperated accurately with iMatix’s OpenAMQ reference implementation, without any prior testing.
This is rare, almost unheard of, but shows the power of ignorance we did not know it had to be hard to interoperate, so we made it work.