Simple Rigs Hold Fast
An important use of computational systems is updating the state of an object while preserving some set of invariants. That object might be a file, a row in a database, or perhaps an entry in a distributed system. Its invariants may place limits on its relationships with other objects, and generally include maintaining a unique identity across updates. The system maintaining these invariants is responsible for not equivocating, or presenting conflicting versions of an object. We call this absence of equivocation integrity. Today the system providing integrity to an object also manages its state. Indeed, it has long been assumed that this must be the case, and that only the system managing an object's state can provide it with integrity. We show that this assumption is wrong. Objects can maintain the integrity of one system while having their state fully managed by another.
READ FULL TEXT