-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: No Action
-
Affects Version/s: 5
-
Fix Version/s: None
-
Component/s: futures
-
Labels:None
Section 4.6 message ordering has a number of imperatives which cause problems for large distributed severs but which do not give any value in terms of message ordering.
The three ACK order mandatory normative statements (MQTT-4.6.0-2, MQTT-4.6.0-3, and MQTT-4.6.0-4) require that the ACKs be send back in the order of the publish. This is orthogonal to the messages being forwarded in order. While this (when applied to servers) might be of value to clients, no client can realistically depend on them as they cannot know the configuration of the server (which is allowed to be configured to not ordered).
It would seem to make equal sense for a client to be allowed to process a topic unordered if so configured.
There is a specific problem with ACK order at session recovery and when ACKs are sent as retry.
The non-normative statements in the section should also be reworked. The second one is clearly false. Setting the in-flight window to 1 in no way guarantees the order of QoS=0 messages relative to QoS>0 messages.