Protocol Buffers
Discussion
Protocol Buffers are a Google language-neutral, platform-neutral, extensible mechanism for serialising structured data.
Protocol Buffers use .proto definition files to describe structured data. The Protocol Buffers compiler generates language-specific code that supports reading, writing, serialising, and deserialising structured data across files, streams, and network connections.
Protocol Buffers do not define peer-to-peer, client-server, brokered, or publish-subscribe communication. Protocol Buffers define a structured-data serialisation mechanism. The selected communication technology defines the communication topology.
Table 1. Protocol Buffer usage in different messaging systems.
| Technology use | Topology |
|---|---|
| Protocol Buffers in a file | No network topology |
| Protocol Buffers over HTTP/REST | Usually client-server |
| Protocol Buffers with gRPC | Usually client-server RPC |
| Protocol Buffers in Kafka | Producer-broker-consumer |
| Protocol Buffers in DDS payloads | DDS governs the data distribution topology |
| Protocol Buffers over custom sockets | Application-defined topology |
In the Financial Systems Archetype document set, Protocol Buffers belong to implementation and platform-specific mapping concerns. Protocol Buffers do not define logical Nodes, logical Communication Endpoints, logical information structures, logical Runtime Planes, or logical interaction patterns.
An implementation profile maps selected logical information structures and selected exchange mechanisms to Protocol Buffers definitions, generated language bindings, runtime libraries, and serialised data when Protocol Buffers serve as the selected data serialisation technology.
Protocol Buffers do not replace DDS transport, DDS discovery, DDS Quality of Service, DDS Topics, DDS DataWriters, DDS DataReaders, or DDS data-distribution behavior. Protocol Buffers may serve as a serialisation choice within an implementation profile when another communication technology provides the communication behavior.
Definition
language-neutral, platform-neutral, extensible mechanism for defining, generating, serialising, and deserialising structured data
Source
Generalised from Google Protocol Buffers documentation and its use as an implementation mapping concern in Part 4: Phase 0 Implementation Profile / PSM.
Note
Protocol Buffers are not a transport, communication middleware, logical information structure, logical Communication Endpoint, logical Node, Runtime Plane, DDS Topic, DDS Domain, message bus, programming language, deployment environment, governance model, or Evidence model.
Example
An implementation profile maps selected FX Demo logical information structures to .proto message definitions and generated language bindings when Protocol Buffers serve as the selected serialisation mechanism.