Skip to content

Complex routing protocols #22

@ecpeterson

Description

@ecpeterson

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions