[nanomsg] Re: Framing - separation of multiple parts of the message

  • From: Steve Atkins <steve@xxxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Fri, 22 Nov 2013 09:28:59 -0800

On Nov 22, 2013, at 9:19 AM, Paul Colomiets <paul@xxxxxxxxxxxxxx> wrote:

> Hi Martin,
> 
> On Fri, Nov 22, 2013 at 7:03 PM, Martin Sustrik <sustrik@xxxxxxxxxx> wrote:
>> 
>> It would be a nice weekend project to implement 0MQ-style multi-part
>> messages on top of nanomsg.
>> 
> 
> I wouldn't encourage anybody to do the work. For the following reasons:
> 
> 1. Multipart messages are too attractive to use for coarse-grained
> protocol. But at the end of the day they suck.
> 
> 2. I've used to think that's multipart are nice, because even simplest
> C client can make use of them without complex dependencies. But full
> msgpack parser take a few hours to implement (in C), and it's nice,
> well known format, that is going to be standardized by IETF
> (hopefully). It's even easier to implement subset of msgpack.
> 
> 3. That "project" would need bindings to every language. And there are
> already bindings for each and every language for msgpack (or put your
> favourite serialization format name here).

One place where it'd be useful is where you want to use it for routing
information. Cracking open a big protobuf or msgpack payload just to find out
where it should be sent to is a fair bit of overhead. 

The extreme of that is pub/sub - you can't send packed messages over
pub/sub and use subscriptions without adding some sort of basic
framing (or getting *way* too chummy with the packing format in use).

Cheers,
  Steve

Other related posts: