These principles guided the thought experiment and then the design process of Folk Memory.
Principles
While listening to papers presented at COOTS’97 I became frustrated that so many requirements were heaped on every distributed object architecture. Surely there is a class of application where delay and uncertainty are acceptable or even desirable. What would be a suitable infrastructure for these applications? I doodled, sketched and crumpled. Then, during the final panel discussion, my thoughts for an alternative came together with these eight principles:
• A server contains pools of interconnected objects.
• Connecting to peer server initiates bi-directional stream of objects without query.
• Inflow suggests schedule for outflow.
• Objects carry trail to more authoritative servers.
• Update implies elevation of authority and therefore trail reversal.
• Trail reversal guides the establishment of new connections.
• Transportation of objects is by breadth first traversal pruned by trail length.
• Pruning is by substitution of inert proxy (a.k.a. Ellipsis).