Message ur-formats

The idea for a minimal common representation arose from the need to make behavioral commitments over messages uniquely definable, without assuming any specific language and implicitly importing implementation details from it into the specification.

It seems most straightforward to me to define a mapping to a representation that most/all implementations will need to deal with, i.e. a canonical wireformat. Ideally that should be one that already supports many languages, e.g. protobuf.

If any language does not have a mapping to and from the wireformat, a mapping to another language that does can be used if available, but then correctness of parser composition to translate through multiple formats becomes relevant.

In theory, we could also make the definitions in protobuf canonical directly, or specify a subset of protobuf as the ur-format, but I’m not sure if we might be importing anything we don’t want.

1 Like