This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Delivery mechanism looks like this - if sender wants to reliably deliver payload to recipient | |
// using at-least-once delivery semantics, it sends that payload wrapped to Messenger actor, which | |
// is responsible for the persistence and redelivery: | |
// | |
// +--------+ +-----------+ +-----------+ | |
// | |--(DeliverOrder<T>)-->| |--(Delivery<T>:1)-->| | | |
// | | | | /* 2nd attempt */ | | | |
// | Sender | | Messenger |--(Delivery<T>:2)-->| Recipient | | |
// | | | | | | | |
// | | | |<----(Confirm:2)----| | |