Formatter Contracts¶
Formatters are responsible for payload serialization and deserialization.
The framework intentionally separates serialization concerns from transport concerns.
graph LR
Message --> IDataFormatter
IDataFormatter --> EncodedPayload
EncodedPayload --> RabbitMQ
IDataEncoder¶
Responsible for converting objects into binary payloads.
Typical responsibilities:
- serialization;
- compression (if implemented);
- payload transformation.
IDataDecoder¶
Responsible for converting payloads back into CLR objects.
Typical responsibilities:
- deserialization;
- validation;
- payload reconstruction.
IDataFormatter¶
IDataFormatter combines encoding and decoding responsibilities.
graph TD
IDataFormatter
IDataEncoder
IDataDecoder
IDataFormatter --> IDataEncoder
IDataFormatter --> IDataDecoder
Current formatter implementations include:
- ServiceBus.Formatters.Ms
- ServiceBus.Formatters.Newtonsoft
Custom implementations can also be created.