AMQP, Sea, Sun, and Desert

created: 1239212115|%e %B %Y, %H:%M
TAGS: amqp photos sandiego

A brief report from the AMQP Conference at San Diego (AMQP'09) with photos of the event and the nearby Anza-Borrego desert state park.

We came to the fourth annual AMQP face-to-face, and the first one with a public conference. The organization by Matthew Arrot, Rita Bauer and the rest of his team was impeccable. You'll see from the first photo set, the USCD location was breath taking and we were spoilt with wonderful lunches, views, weather.

AMQP'09 was a unique event in many ways but mostly because it brought together such a diverse group of people, both an expanding AMQP work group, but also the core of a community of expert users. One of the weaknesses in the AMQP vision up to now has been that the "end user" has been represented only by large global businesses. At AMQP'09 the public seemed mainly to represent small teams, and their needs form an important part of the mix. iMatix is, of course a small team, but ironically our clients are all huge firms. Nonetheless, I often find the response of someone who has precious little time and money to spend on learning and using a technology more enlightening that that of someone with budgets.

The main reason for the public session on Day 1 was to present AMQP/1.0. Rafi and Rob did an excellent job presenting their work. Everyone who came to the event left with their own conclusions. Gone are the exchanges, just as everyone was starting to understand these. At one time on Day 2, the closed group was discussing "XML exchanges" for an hour or so, before I raised my hand to remind: "gentlemen, in 1.0 exchanges are gone." Our mental models take time to come to life, and they die hard.

In place of algorithmic exchanges that feed messages into a population of queues, we will have queues of messages that are scanned by a population of algorithmic links. While the design seems to work for mainstream scenarios, it is not yet clear exactly what this fixes from the 0.9.1 design. We lack a clear explanation of what is broken in 0.9.1, what the possible solutions are, and why the design chosen for 1.0 is the best solution. The argumentation, as one would say.

The argumentation is going to be needed, as more and more people invest in 0.9.1, and will continue to do so over the next year or so until AMQP/1.0 is mature enough to be supported by working products.

Some teams have exploited the exchange-binding-queue model elegantly: FastMQ's ZeroMQ does brokerless messaging by moving the exchange and binding to one peer, and the queue to another. It's unclear how this can work using the new queue-link model.

The difference between the old and the new models is, as far as I can see that the old model is easier to visualize as a flow of messages through exchanges into queues. The new model feels more like pointer manipulation. Maybe more efficient, but also more abstract. Given that it took several years to explain the old AMQP model (it is always totally obvious after six months of reflection), the extra effort needed to understand the new model may prove to be a problem.

People who are used to AMQP/0.9.1 should try to recall how they felt when first reading the exchange-binding-queue explanations. It was obvious, then it was not, and then after much re-reading, it became obvious again. Perhaps this was just alien technology. Or maybe these models are really hard work to understand, even (especially) when they are simple.

My in-progress judgement on AMQP/1.0 is that it looks good, but it is unclear why the changes were needed, and why an evolutionary approach was not possible. I'd have liked to have seen experimentation with the new model, using the existing AMQP/0.9.1 transport, for example. After all, it is trivial to define new classes in AMQP to work with a new set of broker-side objects. Or, I'd like to see the new proposed transport layer running with the existing AMQP/0.9.1 model. Bringing out a completely new AMQP model running on a completely new AMQP transport layer forces all implementers and users - brokers, clients and applications - to throw away their old code and move to new code, in one step. This seems designed to fail.

Having said this, if a new AMQP model is needed, or if a new AMQP transport is needed, we should make them. AMQP is still young enough to absorb this kind of change and if there were serious flaws with the exchange-binding-queue model, it's exactly the early adopters who will understand the need for redesign.

However: such change must be managed and its downstream impact must be minimized. It should be introduced in phases so that the new designs can be matured and validated by real use and competing implementations.

On the afternoon of Day 2 the group split into separate tracks, one to discuss technology and the other to discuss process, and legal aspects. Patents. It's a subject that causes distress because at their core patents (due to their cost and the risk they bring) are a game for large firms only. It is one of the few areas where large and small firms play in the same field, and whenever patents enter the picture the field tilts inexorably away from the smaller teams.

And like I said, it's the smaller teams that are key IMO to AMQP's success.

I'd like to report that the working group came to a firm decision to keep patents far away from AMQP but unfortunately this is not what happened. There were no decisions as such. There was no real criticism of Red Hat's act of patenting that famous XML exchange. Someone joked that one benefit of dropping exchanges in 1.0 was that this patent would become irrelevant.

However, standards committees are slow machines and the AMQP working group moves faster than most. We did make excellent progress on the idea that AMQP was more than one document, and consisted of a sort of ecosystem of specifications. We already have this, informally. The ecosystem is inevitable because AMQP is not a 100% solution. It needs supporting specs in all directions. Either vendors make these privately, with a chance of patenting, or they make them publicly, with a unilateral patent license such as the site uses.

One can never stop a firm from patenting some extension to AMQP. But one can encourage firms to publish their specs in a form that precludes this. Not publishing the spec for functionality then becomes a clear statement of intent. Patents are an issue. but transparency around exactly what is safe goes a long way to solving that issue.

For a firm like iMatix, whether or not we invest in AMQP/1.0 depends very much on whether the AMQP process expands to include such an ecology of open, unilateral specifications. A big jump to new designs is one thing. A jump into a space that may have patent ambushes, quite another. If we're vocally sensitive to this issue it's because we've been hit by it before. In 2005, a meagre patent claim by Belgian firm AllisBlue caused us to exit the mobile applications market and abandon about Euro 250,000 and three years of investment into a mobile apps platform called SMS@. Any patenting activity around AMQP, no matter what the stated intentions are, is a threat to implementer and users of AMQP, and will keep smaller companies away from the table.

I'll continue to blog on this issue, and the progress (or lack of it) that the AMQP working group makes, over the next months and years.


On Day 2… well, on Friday I decided to skip class and head for the desert. The 9-hour jet lag and committee discussions on software patents began to turn my brain to mush. The state desert park of Anza-Borrego, the largest park in California, is just two hours' drive north-west from San Diego. A stretch of highway, and then a long windy trail over mountains and valleys, until one comes to this massive area surrounded by mountains.

When one drives in the desert, one uses an all-wheel drive and GPS. Halfway into Anza-Borrego my GPS died. My heart froze. GPS, while giving a godlike wisdom of where to turn, also makes one stupid. A paper map would make a good backup. In any case I had a gallon of water (89c at Walmart leaving San Diego) and stout shoes. Then I saw a small 'reset' hole on the GPS. Found tiny twig, inserted, pressed, and yay! GPS rebooted and I was safe again.

The hot and cold deserts, along with impenetrable rain forests, are those rare parts of the dry surface of the planet that have not been moulded by human activity. Some roads cross Anza-Borrego but mostly it's moulded only by nature: rising crusts, erosion from water and wind. The plain is hot and dry. The plants are all thorns and bristles. Many were in flower. The beauty of the desert flower is accentuated by its rarity in the dry landscape.

As one walks the hills, one is wafted by the scents of flowers and plants. One particularly sweet smell, a cross between sage and lavender, I traced to a small pine shrub which just had particularly fragrant leaves.

The air rustles with the noises of plants in the wind and the buzz of invisible insects. The ground is sandy where it's flat, rocky on the slopes. There are burrows of mice, or snakes. I saw neither. There are palms where the locals pump water up from the water bed. In places it comes up by itself, and springs dot the park. In the hills you see the work of flash floods, which carve out gullies in the rock. The desert comes alive at night but as the sun set I decided to find a place with a real bed.

I filled up and overnighted in a motel in Borrego Springs, a town of retirees with legs muscled from climbing the desert paths. Like the sheep the area is named after. I did not see any Borrego sheep, they hid well.

The empty wilderness contrasted with the utterly refined beaches of La Jolla (which, Rainey explained, is pronounced "la Hoya"). Neither felt anything like home, which is presently a calm street in the old canal zone of Brussels.

But one thing I realized: AMQP, like any city, and unlike the desert plains and mountains of Anza-Borrego, thrive or fail according to the diversity and energy of the people that inhabit it. It's people and openness, not technology, that make standards a success. And bringing together such a diverse and energetic group of people, the AMQP 2009 event smelled of success.


Bookmark and Share

Rate this post:

rating: 0+x

Comments: 0

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