Hiram Chirino
Software Fellow | FuseSource Corp.
chi...@fusesource.com | fusesource.com
skype: hiramchirino | twitter: @hiramchirino
blog: Hiram Chirino's Bit Mojo

Clients that use theThis is incorrect, they can also connect to STOMP 1.1 servers.STOMPframe instead of theCONNECTframe will only be able to connect to STOMP 1.2 servers
"If the message is received from a subscription that requires explicit acknowledgment (eitherHow about avoiding this backwards incompatible change by instead making the ack header optional, and stipulating that the client must use the message-id as the ACK id if the ack header is absent? The above quoted passage would be reworded as follows:clientorclient-individualmode) then theMESSAGEframe MUST also contain anackheader with an arbitrary value. This header will be used to relate the message to a subsequentACKorNACKframe."
"If the message is received from a subscription that requires explicit acknowledgment (eitherThere two motives here: (a) avoids forcing a change for STOMP servers (clients would still need to be changed to respect the ack header if present) (b) avoids unnecessary duplication and bandwidth usage in cases where the server wants the message-id to be used as the ACK id.clientorclient-individualmode) then theMESSAGEframe MAY also contain anackheader with an arbitrary value. This header, if present, MUST be used to relate the message to a subsequentACKorNACKframe. Otherwise the message-id header is used."
Transaction identifiers MUST be unique per connection.If the intention is to say that transaction identifiers must be unique within the same connection, then I would suggest mirroring the language used for the SUBSCRIBE id (which I do find it very clear), i.e.:
Within the same connection, different transactions MUST use different transaction identifiers.
MESSAGE frame
The new ack header is now mandatory:
"If the message is received from a subscription that requires explicit acknowledgment (eitherHow about avoiding this backwards incompatible change by instead making the ack header optional, and stipulating that the client must use the message-id as the ACK id if the ack header is absent? The above quoted passage would be reworded as follows:clientorclient-individualmode) then theMESSAGEframe MUST also contain anackheader with an arbitrary value. This header will be used to relate the message to a subsequentACKorNACKframe."
"If the message is received from a subscription that requires explicit acknowledgment (eitherThere two motives here: (a) avoids forcing a change for STOMP servers (clients would still need to be changed to respect the ack header if present) (b) avoids unnecessary duplication and bandwidth usage in cases where the server wants the message-id to be used as the ACK id.clientorclient-individualmode) then theMESSAGEframe MAY also contain anackheader with an arbitrary value. This header, if present, MUST be used to relate the message to a subsequentACKorNACKframe. Otherwise the message-id header is used."