Message Delivery Behavior

Duplicate Delivery

While persistence stores and durables can strengthen delivery assurance, they also introduce the possibility of duplicate delivery. Application developers must design subscribing programs to process duplicate messages gracefully.

Message Order

A persistence store preserves message order within each of its publisher streams. That is, if a publisher sent message M1 before message M2, then the store delivers M1 before M2. Every subscriber that attempts to recover both messages receives them in the correct order.

However, a persistence store that merges message streams from two or more publishers does not preserve global order among its publisher streams. That is, if publisher A sent message A1 before publisher B sent message B2, the store could deliver these messages in either order. Furthermore, two subscribers S and T that recover these two messages could receive them in a different order: S receiving A1 first, and T receiving B2 first.