Skip to content

DDS QoS Policy Guide

A plain-language reference to the 16 DDS QoS policies that shape every ROS 2 topic.

QoS policies are the settings that decide how a topic behaves, for example whether delivery is guaranteed, whether a node that joins late still receives past messages, and how long each message stays in the queue. Every policy has its own page here that explains what it does, the values it accepts, and how it acts at each stage of a connection. Start anywhere or read straight through, then follow the links to the Dependency Map to see how policies affect one another, or to Rules & Evidence to see which combinations QoS Guard flags.


16 QoS Policies


Lifecycle of DDS Communication

Three Phases: Discovery → Data Exchange → Disassociation.
1. Discovery Phase
Entities with the same topic are matched through PDP/EDP protocols and
established after verifying QoS compatibility.
2. Data Exchange Phase
Matched pairs exchange user data and control metatraffic (HEARTBEAT/ACKNACK) to
ensure reliability and timeliness.
3. Disassociation Phase
Communication ends by disposing instances or removing GUIDs, followed by
purging all history after a timeout.
Lifecycle Mapping
QoS Policy Discovery Data Exchange Disassociation
ENTITY_FACTORY O
PARTITION O
USER_DATA O
GROUP_DATA O
TOPIC_DATA O
RELIABILITY O O O
DURABILITY O O O
DEADLINE O O
LIVELINESS O O O
HISTORY O
RESOURCE_LIMITS O
LIFESPAN O
OWNERSHIP O O O
DESTINATION_ORDER O O
WRITER_DATA_LIFECYCLE O
READER_DATA_LIFECYCLE O

Summary: Metadata, Matching, Cache, and Lifecycle

Category QoS One-line summary
Discovery timing ENTFAC When entities participate in discovery
Logical segmentation PART Partition names to separate or group topic flows
Metadata USRDATA, GRPDATA, TOPDATA Application info on Participant / Pub-Sub / Topic
Delivery guarantee RELIAB best_effort vs reliable (retransmission, ordering)
Late joiners DURABL How much past data late joiners can receive
Temporal constraints DEADLN, LIVENS Period (deadline) monitoring; Publisher liveness
Cache HIST, RESLIM, LFSPAN How many samples, upper bounds, validity duration
Multiple writers OWNST, DESTORD Single owner vs shared; order by reception vs source timestamp
Instance cleanup WDLIFE, RDLIFE Dispose on unregister; when to purge disposed/no-writer samples

Next steps

Section Use it for
Dependency Map See how the policies affect one another across all 40 rules
Rules & Evidence Open each rule with its conflict condition, engine checks, and the evidence behind it