Skip to content

RELIABILITY

Determines whether entities such as topic, Publisher, and Subscriber transmit data reliably.

What it controls

Whether samples are delivered with acknowledgment and retransmission, or on a best-effort basis without guaranteed delivery.

  • RELIABLE: Attempts to deliver all samples stored in the Publisher HistoryCache to the Subscriber.
    Retransmissions occur upon request using ACK/NACK signaling.
    (max blocking time limits how long a Publisher's write() or dispose() operation can be blocked due to delayed ACKs or buffer unavailability.)
  • BEST_EFFORT: Publisher does not wait for ACKs and does not retransmit lost samples.

Key settings

Field Default Mutability
kind Publisher-reliable, Subscriber-best_effort Can not be changed at runtime
max_blocking_time Can not be changed at runtime

Compatibility role

Matching and delivery — Writer offered reliability must be at least as strong as Reader requested reliability (RxO). Governs retransmission, dispose delivery, and interaction with liveliness, durability, and timing policies.

When this conflicts

Reliability takes part in the following QoS Guard rules. Each links to a full explanation with an example and a fix.

Example

The RELIAB QoS can be used to balance safety and efficiency by configuring topics according to their criticality. For commands such as emergency stops or task assignments, both Publisher and Subscriber should use reliable, ensuring guaranteed delivery. In contrast, high-frequency data such as LiDAR scans or camera streams can use best effort, which avoids retransmission overhead and tolerates occasional loss.