1. One or more computer storage media having processor-executable instructions that, when executed by a computing device having a processor and memory communicatively coupled to the processor, configure the computing device to perform acts comprising: facilitating establishment of a bi-directional message conduit having exactly two endpoints, a first endpoint being directly connected to and owned by a first software process and a second endpoint being directly connected to and owned by a second software process, the first software process and the second software process being located within the memory of the computing device and executed within an operating system of the computing device; and maintaining the bi-directional message conduit for passing multiple messages via the bi-directional message conduit only between the first software process and the second software process, wherein: the passing consists of passing the multiple messages only from one endpoint of the bi-directional message conduit to another endpoint of the bi-directional message conduit; and the passing of multiple messages via the bi-directional message conduit is constrained by a processor-readable contract having information that defines a relationship between the first and second software processes with regard to the bi-directional message conduit, the information comprising: a set of message types that are allowed to be sent through the bi-directional message conduit; a description of allowable sequences of message exchange between the two endpoints of the bi-directional message conduit; and an allowed ordering of messages to be sent between the two endpoints of the bi-directional message conduit.