Skip to content

Wire level format of messages

Mogens Heller Grabe edited this page Jan 26, 2014 · 11 revisions

A Rebus message contains the following two things:

  • message headers - list of key/value pairs
  • message body - sequence of 0..* logical messages

Message headers

Rebus message headers should be moved in a way that makes them visible to the outside (if possible), allowing them to be used to contain various metadata about the message, which turns out can be used for various conveninent purposes.

If the transport has a mechanism for transferring headers, that mechanism should be used (if not for all headers, then at least in a way that makes relevant headers visible to applications and tools that don't necessarily know anything about Rebus).

Rebus has a number of special headers that carry with them special semantics, and these will be used by Rebus to e.g. implement the ability to reply back to the sender of a message, etc. All special Rebus headers are prefixed with rebus-, e.g. rebus-correlation-id to denote the automatically-flowing correlation ID that can be used to track cause and effect in your endpoints.

Clone this wiki locally