aether icon indicating copy to clipboard operation
aether copied to clipboard

Complex routing protocols

Open ecpeterson opened this issue 4 years ago • 0 comments

In network.lisp, one finds the following comment:

;; IMPORTANT NOTE: On reflection, a nondeterministic routing strategy will mean
;;     that it's possible for violate message delivery order, which is no bueno.
;;     Either this function should always be deterministic, or we we will have
;;     to put up with out-of-order behavior, or we will have to reject out-of-
;;     order messages.  For now, let's stick with the first option.

We actually don't need to put up with out-of-order behavior: if a message originator also transmits the ID of the message it previously sent to a given address, the receiving courier can wait until that message is also received before installing this message in the appropriate inbox. At present, send-message is implemented too minimally to support this, and I think making it less minimal would affect one's ability to use it (with this guarantee) outside of the context of a process—but it is possible to make this modification.

This is worth doing, as it opens the door to more complicated routing protocols and the alleviation of network pressure.

ecpeterson avatar Nov 12 '20 04:11 ecpeterson