What is DDS (Data Distribution Service)? Components, Use Cases, and Implementation with Fast DDS

Data Distribution Service (DDS) - Manya Technologies

Introduction

Modern real-time systems—such as radar displays, defense command systems, UAV control, GIS-based tracking platforms, and industrial automation—require extremely fast, reliable, and scalable data exchange. Traditional client-server or REST-based communication models often fail to meet strict latency and reliability requirements.

This is where DDS (Data Distribution Service) comes in.

DDS is a high-performance, data-centric publish–subscribe middleware standard designed specifically for real-time, mission-critical, and distributed systems.

In this blog, we’ll cover:

  • What DDS is
  • Core DDS components
  • Where DDS is commonly used
  • How to implement DDS using Fast DDS
  • Why DDS is ideal for real-time GIS, radar, and simulation systems

What is DDS (Data Distribution Service)?

DDS (Data Distribution Service) is an OMG (Object Management Group) standard for real-time data exchange between distributed systems.

Unlike traditional messaging systems that focus on sending messages, DDS is data-centric:

  • Applications publish data
  • Other applications subscribe to data of interest
  • DDS handles discovery, delivery, reliability, latency, and scalability automatically

Key Characteristics of DDS

  • Real-time & low latency
  • Decentralized (no broker required)
  • Scalable (from 2 nodes to thousands)
  • Reliable & fault-tolerant
  • Platform and language independent

Core Components of DDS

Understanding DDS becomes easy once you know its main building blocks.

1. Domain

A Domain is a logical communication space.
Only participants in the same domain can communicate.

Example:

  • Domain 0 → Radar simulation system
  • Domain 1 → Mission planning system

2. Domain Participant

A DomainParticipant represents an application joining a DDS domain.

Think of it as:

“An application entering a DDS network”

Each process usually creates one participant.


3. Topic

A Topic defines:

  • The name of the data
  • The data type (structure)

Example:

Topic: RadarTrack
Fields: track_id, latitude, longitude, altitude, speed, heading

4. Publisher & DataWriter

  • Publisher: Manages one or more data writers
  • DataWriter: Writes (publishes) data for a topic

Example:

  • Radar simulator publishing track updates
  • GPS sensor publishing ownship position

5. Subscriber & DataReader

  • Subscriber: Manages one or more data readers
  • DataReader: Reads (subscribes to) topic data

Example:

  • GIS display subscribing to radar tracks
  • Command system subscribing to sensor data

6. QoS (Quality of Service)

QoS is what makes DDS powerful.

You can control:

  • Reliability (Best-effort / Reliable)
  • Latency
  • History (keep last N samples)
  • Durability
  • Deadline & liveliness

This allows DDS to work for hard real-time systems, unlike typical messaging frameworks.


Common DDS Use Cases

DDS is widely used in domains where timing and reliability matter.

Defense & Aerospace

  • Radar and sensor fusion
  • Tactical data links
  • Command and control systems
  • Simulation and war-gaming

GIS & Tracking Systems

  • Real-time moving target display
  • Live aircraft / ship tracking
  • Sensor overlays on maps
  • Multi-client GIS synchronization

Robotics & Autonomous Systems

  • Robot sensor data exchange
  • Autonomous vehicle communication
  • ROS 2 internally uses DDS

Industrial & Simulation Systems

  • Digital twins
  • Hardware-in-the-loop (HIL) simulation
  • Large-scale real-time simulators

Why DDS Instead of REST, TCP, or MQTT?

FeatureDDSRESTMQTT
Real-time latency✅ Excellent❌ Poor⚠️ Medium
Brokerless✅ Yes❌ No❌ No
QoS control✅ Very rich❌ None⚠️ Limited
Auto discovery✅ Yes❌ No❌ No
Scalability✅ High❌ Low⚠️ Medium

DDS is not just messaging—it’s a real-time data fabric.


Implementing DDS Using Fast DDS

Fast DDS (formerly Fast RTPS) is an open-source DDS implementation by eProsima.
It is widely used in ROS 2, defense systems, and real-time platforms.

Why Fast DDS?

  • Open source (Apache 2.0)
  • High performance
  • Actively maintained
  • Cross-platform (Linux, Windows)

Step 1: Define Data Types (IDL)

DDS uses IDL (Interface Definition Language).

struct RadarTrack {
    long track_id;
    double latitude;
    double longitude;
    double altitude;
    double speed;
    double heading;
};

This gets converted into C++ classes using Fast DDS tools.


Step 2: Create Domain Participant

DomainParticipantQos qos;
auto participant = DomainParticipantFactory::get_instance()
    ->create_participant(0, qos);

Step 3: Create Topic

auto topic = participant->create_topic(
    "RadarTrackTopic",
    "RadarTrack",
    TOPIC_QOS_DEFAULT);

Step 4: Publisher & DataWriter

auto publisher = participant->create_publisher(PUBLISHER_QOS_DEFAULT);
auto writer = publisher->create_datawriter(
    topic, DATAWRITER_QOS_DEFAULT);

Publish data:

writer->write(&track);

Step 5: Subscriber & DataReader

auto subscriber = participant->create_subscriber(SUBSCRIBER_QOS_DEFAULT);
auto reader = subscriber->create_datareader(
    topic, DATAREADER_QOS_DEFAULT);

Read data using listeners or polling.


Step 6: Configure QoS (Critical Step)

Example:

  • Reliable delivery
  • Keep last 10 samples
  • Low latency

QoS tuning is where real expertise matters.


DDS + Qt + GIS (Real-World Architecture)

A typical architecture we implement:

  • DDS Publishers
    • Radar simulator
    • Sensor simulator
    • GPS / AIS / ADS-B feeds
  • DDS Subscribers
    • Qt-based radar display
    • QGIS-based map viewer
    • Mission planning tools
  • Visualization
    • 2D/3D map
    • Trails, vectors, overlays
    • Real-time filtering and replay

This allows multiple applications to stay perfectly synchronized without polling or central servers.


Challenges & Best Practices

  • QoS misconfiguration can cause data loss
  • Network tuning (UDP, multicast) is important
  • Topic design must be clean and future-proof
  • Logging and monitoring should be planned early

DDS is powerful—but needs proper system-level design.


Conclusion: Need DDS-Based Real-Time Software?

DDS is a proven, industry-grade solution for real-time, distributed, and mission-critical systems. When implemented correctly, it enables:

  • Ultra-low latency data exchange
  • High reliability
  • Seamless scalability
  • Clean system architecture

At Manya Technologies, we specialize in:

  • DDS-based system design and implementation
  • Fast DDS integration
  • Qt & QGIS-based real-time visualization
  • Radar, sensor, and data simulators
  • GIS and defense-grade software solutions

📩 Looking to build or modernize a DDS-based system?
Contact Manya Technologies to discuss your requirements and get a tailored solution for your real-time application.

Scroll to Top