ROS2 blocking on publish()?

Do I understand correctly that most ROS2 middlewares will block if one of the network links to a subscriber has insufficient bandwidth? At least that’s what I’ve been observing and it’s quite a big difference to ROS1, or in fact to other middleware I’ve used so far (like TibRV). Usually a publisher is never supposed to be affected by the subscribers (within reasonable bounds). Is this indeed a conscious design decision in ROS2?
I asked a more detailed technical question under ROS answers

3 Likes

I think some (or all?) DDS middlewares allow asynchronous publishers, which would solve the blocking issue at the expense of having a separate sending thread.