Messaging
Must: Use Protocol Buffers as messaging protocol
Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster,
and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write
and read your structured data to and from a variety of data streams and using a variety of languages. You can even update your data
structure without breaking deployed programs that are compiled against the "old" format.
Since protobufg is language agnostic, it makes easier for us to deal with standards accross different languages. More information about protobuf can be found here
Must: Use AMQP Headers Correctly
The headers listed bellow should be defined for every single message that goes in the mesage broker.
Timestamp
indicates when the message was publish in the exchange.MessageID
it's the identifier for that message. The producer should generate a UUID-V4 for it.Content-Type
indicates the media type of the body content, this should beapplication/octet-stream
.Content-Encoding
indicates compression or encryption algorithms applied to the content, this should bebinary
.
Must: Use routing keys in the right format
TBD
Should: provide the Open Tracing ID
When sending a message you should provide your tracing id from the open tracing. For more information about how distributed tracing works can be found here