In case of the local MQTT message bus, the QoS setting shall be always "0" because TCP guarantees that no messages are lost between the publisher and the broker. The additional guarantees of higher QoS values are not existent when no persistent buffering is implemented (which we don’t have with Mosquitto).
QoS=1
and QoS=2
add a lot of additional overhead and reduce the throughput. In high load scenarios, instead of guaranteeing message delivery, this instead leads to an earlier collapse of the system because of the higher load and is therefore counterproductive.
In case a proxy is between the publisher and the Databus or when they are running on a different machine and the network or machine might fail, the situation might become different.