Real and Explanatory Objects

This is a small point that bears on a recent question. I distinguish between two kinds of object: Sometimes one Keykos domain may be used to serve the role of conceptually distinct objects and conversely several domains may actually band together to provide the behavior of one conceptual object.

In Keykos we have taken the attitude that implementation decisions are decoupled from decisions on how to describe behavior. Sometimes it is not initially obvious how many conceptual objects are required to best (most clearly) describe behavior. Likewise it is often not initially clear how many domains are best employed. One rule of thumb is when in design trouble try using more (or fewer) domains.

One useful Keykos design pattern is to disseminate a start key S to one domain. This domain examines the order (method code) and forwards the call onto other domains that specialize according to order. This means that key S may be able to accept requests before earlier requests have been responded to.