The overview document has more detail than you would ever care to learn. I’ve listed some of the key points below. There’s also a demo that runs on this architecture. (The movable desktop is an independent piece.) The prototype was written in 1996-7, which was before enterprises supported open source.
The top of page 27 (28 in your PDF reader) shows the basic request flow within a “logical machine.” An application selects an entry from its clist (Name Space) as the target of a request, sends it to the runtime (Core). The Core looks up the destination (Handler) in the Repository and forwards the request. The request can specify other clist entries, which will be delegated to the handler.
The picture at the top of page 92 (93 in your PDF reader) shows the essence of the multi-machine interaction. A unique(?) feature of CU is that the Core doesn’t know about any other machines, only the handler does. The result is that you can add a new communication protocol simply by deploying an application that supports it.
Section 9.2, starting on page 96, describes failure handling.
CU has some interesting features, a few of which are actually good .
Naming was path dependent, so EQ was not possible for references received on different paths. Our enterprise customers were very worried about that, but it turned out not to be a problem for their use cases. In fairness, this architecture was only used for some 18 months by a half dozen customers, so I can’t say that EQ is never needed.
Delegation to a client on another machine was default by proxy. You have to formally ask to shorten delegation chains. (E, on the other hand, with its sturdy refs, shortens by default.) That choice was important back then because our boxes could handle only a modest number of connections.
We had a resource discovery mechanism based on name-value pairs that we called Vocabularies. The interesting thing is that vocabularies were resources that were accessed controlled by capabilities. You couldn’t even find out that something existed if you didn’t have a capability to a vocabulary it was advertised in.
CU supported negative permissions. My worry was that an administrator would accidentally give a powerful capability to a guest user. The mechanism I used was based on split capabilities, one of the questionable features in the design. However, I think the mechanism can be implemented without them.