DDS

DDS is a suite of open standards for data-centric communication in distributed systems. It handles concerns such as message addressing, data marshaling and demarshaling, delivery, flow control, retries, and security. Any node can be a publisher, subscriber, or both. The DDS publish-subscribe model greatly reduces the amount of network programming required by distributed applications and supports capabilities beyond basic publish-subscribe communication.

A key benefit of DDS is that communicating applications are decoupled. Applications do not need to know about the existence or location of other participants, reducing the amount of design effort required to manage their interactions.

DDS automatically handles many aspects of data delivery, including:

  • Determining who should receive the data
  • Locating recipients
  • Handling data that cannot be delivered

DDS uses Quality of Service (QoS) policies to specify the guarantees and behavior required when publishing and subscribing to data. These policies let applications configure communication behavior without embedding that logic in the application itself. This data-centric approach helps simplify distributed application design and encourages modular, well-structured systems.

DDS can also support redundant publishers and automatically switch between sources according to configured QoS policies and data validity. DDS implementations are available from multiple vendors with APIs for languages including Ada, Rust, C, C+⁠+, modern C+⁠+, Ruby, C#, and Java.

Remedy IT provides services for DDS-based systems, including architecture, integration, troubleshooting, and migration support. We also provide commercial support for OpenDDS.