Evidence
Every rule is backed by evidence. Each page below explains the conflict in plain language, gives a concrete example and a fix, and then shows exactly why the rule is flagged, whether that is the DDS specification text, the engine source code, or a controlled measurement.
History depth set deeper than the resource-limit cap
History → Resource Limits
Won't connect
Total sample cap set below the per-instance cap
Resource Limits → Resource Limits
Won't connect
Best-effort delivery with transient-local durability
Reliability → Durability
Breaks a guarantee
Best-effort delivery with exclusive ownership
Reliability → Ownership
Breaks a guarantee
Best-effort delivery with manual liveliness
Reliability → Liveliness
Breaks a guarantee
Finite lifespan expires the history that durability should replay
Lifespan → Durability
Breaks a guarantee
Lifespan shorter than the deadline period
Lifespan → Deadline
Breaks a guarantee
Source-timestamp ordering with a history depth of one
History → Destination Order
Breaks a guarantee
Source-timestamp ordering with a per-instance cap of one
Resource Limits → Destination Order
Breaks a guarantee
Exclusive ownership with no deadline to trigger failover
Deadline → Ownership
Breaks a guarantee
Exclusive ownership with no liveliness lease to detect a dead writer
Liveliness → Ownership
Breaks a guarantee
No-writer purge that never fires because liveliness never expires
Liveliness → Reader Data Lifecycle
Breaks a guarantee
Disposed-sample purge that discards data durability should keep
Reader Data Lifecycle → Durability
Breaks a guarantee
Deadline monitoring interrupted when partitions change
Partition → Deadline
Breaks a guarantee
Manual liveliness disrupted when partitions change
Partition → Liveliness
Breaks a guarantee
Auto-dispose on unregister races exclusive-ownership failover
Ownership → Writer Data Lifecycle
Breaks a guarantee
Lifespan longer than the history window can ever hold
History → Lifespan
Wastes resources
Lifespan longer than the resource-limit buffer can ever hold
Resource Limits → Lifespan
Wastes resources
Manual enable with volatile durability drops pre-enable data
Entity Factory → Durability
Wastes resources
Partitions filter which retained samples a late joiner replays
Partition → Durability
Wastes resources
Publisher and subscriber share no partition name
Partition → Partition
Won't connect
Subscriber requires reliable, publisher offers best-effort
Reliability → Reliability
Won't connect
Subscriber requires more durability than the publisher offers
Durability → Durability
Won't connect
Publisher's deadline is slower than the subscriber demands
Deadline → Deadline
Won't connect
Publisher's liveliness is weaker than the subscriber requires
Liveliness → Liveliness
Won't connect
Publisher and subscriber disagree on ownership kind
Ownership → Ownership
Won't connect
Subscriber requires source-timestamp ordering the publisher does not offer
Destination Order → Destination Order
Won't connect
Immediate no-writer purge with auto-dispose turned off
Writer Data Lifecycle → Reader Data Lifecycle
Breaks a guarantee
Disposed-sample purge that can never fire
Writer Data Lifecycle → Reader Data Lifecycle
Wastes resources
Reader cache that is never reclaimed after writers leave
Writer Data Lifecycle → Reader Data Lifecycle
Wastes resources
Reliable history too shallow for the round-trip
History → Reliability
Breaks a guarantee
Reliable buffer too small for the round-trip
Resource Limits → Reliability
Breaks a guarantee
Lifespan expires samples before reliable retransmission finishes
Lifespan → Reliability
Breaks a guarantee
Best-effort delivery drops the dispose notification
Reliability → Writer Data Lifecycle
Breaks a guarantee
Best-effort loss triggers false deadline-missed events
Reliability → Deadline
Breaks a guarantee
Liveliness lease shorter than the deadline period
Liveliness → Deadline
Breaks a guarantee
Unbounded durable writer cache under keep-all
History → Durability
Wastes resources
Deadline too tight for the link forces needless ownership handover
Deadline → Ownership
Wastes resources
Liveliness lease too tight for the link causes ownership flapping
Liveliness → Ownership
Wastes resources
Durable replay resets the deadline timer for a late joiner
Durability → Deadline
Wastes resources
Common experimental conditions
Controlled loopback measurements use the following shared setup unless a rule page states otherwise.
PlatformROS 2 Jazzy, loopback
lo, delay and loss via tc netemEnginesFast DDS 2.14.6, Cyclone DDS 0.10.5
Older-version checkFast DDS 2.6.11 and Cyclone DDS 0.10.5 for version-sensitive cases
Repetitions5 runs by default, runtime-event rules at least 3, seed
20260630Message size1024 B, with a 1 MB fragmentation probe on the reliable-history rule
Network grid
RTT 1 to 500 ms, loss 0 to 20%, publish period 10 to 100 ms