MessageDeliveryGuarantees
MessageDeliveryGuarantees copied to clipboard
MessageDeliveryGuarantees
This repository hosts several different branches showing different implementations of a sender and a receiver that communicate over an artificially unreliable network connection.
In particular:
- the
starting-pointbranch just sets up the minimal environment for starting the experimentation - the
at-most-oncebranch shows the inherent messaging semantics of Akka (not minimal in its implementation but instead minimizing the diff to the following two branches for easy comparison) - the
at-least-oncebranch uses the AtLeastOnceDelivery support trait and allows you to try different failure modes to observe duplication or out of order reception of messages - the
exactly-oncebranch then shows the equivalent of what is commonly called “guaranteed delivery”, but feel free to placefail()statements in strategic places to exhibit cases where this does not hold (just as in every other commercial implementation as well)