Table of Contents

Protocol Buffers

Return to Terms and Definitions

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.