[rabbitmq-discuss] GPB and AMQP/RabbitMQ

Kirk Wylie kirk at kirkwylie.com
Wed Mar 25 19:46:15 GMT 2009

On Wed, Mar 25, 2009 at 7:22 PM, Elsner, Robert
<Robert.Elsner at echostar.com> wrote:
> We are using GPB as the message payload for all of our AMQP messages.
> We have settled on RabbitMQ as the broker, and have been very pleased
> with the results (except for my gripe earlier about the AMQP header
> size).  If I get time I may undertake a quick project to make GPB the
> wireformat, but without adoption from the AMQP WG this would be an
> academic exercise only.  A portion of our GPB defines what will become
> the routing key, so this is redundant data, but that would be sweet if
> we could build a GPB payload that included the AMQP headers, and the
> routing worked directly from that.

Hi, Robert,

Ignore my previous email. This thread is updating too fast for my old
fingers to keep up. :-)

Interestingly, when GPB came out, ActiveMQ did this precise thing (to
have a parallel wire protocol beyond the existing ones that was based
on using GPB as the wire representation), and they said that it worked
quite well. That being said, it definitely wouldn't work for AMQP
given that it is designed as a completely neutral wire representation,
but it might be useful for members of the WG to know that many people
find the current wire encoding a bit too high-overhead.

The problem I've personally always had with GPB in this case is that
you still need to have some type of message termination encoding, or
some type of prefix to let you know the size, as otherwise GPB will
just consume data from the inbound stream. So GPB in and of itself
would still need some other type of framing going on to say "the next
thing should be interpreted as per this .proto, and by the way, it's
going to be 1024 bytes" or something. How would you think of working
around that?


More information about the rabbitmq-discuss mailing list