Conference paper Open Access
We describe Netfarm, a replicated object system, in which various kinds of objects can be stored across a network. These objects are instances of schemas (themselves also objects), which describe the representation of objects, and their behaviour, using a portable bytecode. Objects affect each other by running scripts using the bytecode, which in turn produce effects on multi-sets of computed values. Arbitrary access to effects is restricted by an object capability system on the object scale, and by capability lists on a larger scale, allowing untrusted objects to communicate, and for many untrusted applications to run on nodes and client programs. Objects may exist on multiple nodes of the network to make the system fault-tolerant, as their behaviour is explicated to the system and thus reproducible. Replication of the actions generated by scripts cause Netfarm to exhibit strong eventual consistency. This programming model allows for supporting many programs on one object system, which can use efficient replicated algorithms and data structures.