Intro

Data Distribution Service (DDS) is a middleware standard that implements Publisher-Subscriber for real-time data exchange in distributed systems. DDS decouples applications while enabling direct data sharing between them without complex network programming and provides configurable Quality of Service (QoS) policies (reliability, bandwidth).

Applications

  • Robotics- ROS2 uses DDS as its default communication layer
  • Autonomous vehicles
  • Aerospace- Flight control systems, radar, and simulation networks

DDS vs Other Messaging Systems

| Feature      | DDS                | MQTT     | Kafka            | REST/HTTP        |
| ------------ | ------------------ | -------- | ---------------- | ---------------- |
| Model        | Pub/Sub            | Pub/Sub  | Pub/Sub / Stream | Request/Response |
| Real-Time    | Yes, deterministic | Limited  | No               | No               |
| QoS          | Extensive          | Limited  | Moderate         | Minimal          |
| Scalability  | High               | Moderate | Very High        | Moderate         |
| Peer-to-Peer | Yes                | No       | No               | No               |
 

Quality of Service (QoS)

Quality of Service (QoS)

https://www.mathworks.com/help/dds/gs/dds-conceptual-overview.html img

In addition to being able to send and receive data, Quality of Service (QoS), which describes the quality of the data transport, can be specified for a Topic, a Publisher or Subscriber, or specific DataReaders or DataWriters. DDS is known to have several QoS policies to help ensure exact control over data transport. You can assign individual QoS policies to these entities, or you can assign a set of QoS policies referred to as a QoS profile.