Skip to content

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.