Description
For those who use ordering for its equivalence to consensus a potentially unordered transmission or receipt of CloudEvents could block use of this library. However, providing order guarantees has implications for performance and interaction models based on the targeted protocol and/or middleware. To be concrete, if every message must be acknowledged before the next can be sent, parallelism within an ordering scope cannot be achieved without some sort of reassembly or gap detection and retransmission mechanism. Without such a mechanism, senders and receivers must fallback to a rate of transmission that is the time of a round trip on the network rather than the time to mark a message for transmission. Because of the order of magnitude differences it will be unacceptable to require those without ordering requirements to accept the throughput implications of ordering but it will also be unacceptable not to offer an ordered transmission capability. Thus implementers of the mappers between the CloudEvents values and specific protocols that can support ordering guarantees should offer configuration controlling this behavior.