[zeromq-dev] Q: type-tagging messages - prefix an uint32 or a frame?

Michael Haberler mail17 at mah.priv.at
Fri Jun 19 16:00:03 CEST 2015

so far we are using protobuf for serialization, with a single protobuf message being the supertype and container of all possible other message contents

we are switching to tagging - each frame has a 32bit-sized tag which encodes message type *), as well as message encoding

so we have two options:

(1) just prefix each message (whatever type/encoding) with the tag, in a single frame
(2) prepend a 4-byte frame with the tag, which says how to interpret the following frame

(2) would be easier to autodetect for backwards compatibility, at the cost of extra ZMTP framing overhead
(1) would need a heuristic test which I dislike

any suggestions one way or the other?
are there any significant runtime performance implications of using (2)? 


- Michael

*) since protobuf lacks a message type ID, Petteri Aimonen and me came up with the msgid option in the .proto spec, see https://github.com/nanopb/nanopb/search?utf8=%E2%9C%93&q=msgid
this could be useful for other protobuf users as message type ID's are a recurring question

More information about the zeromq-dev mailing list