What is OpenReplica?

OpenReplica is an object replication service for providing reliability and fault-tolerance in distributed systems. It is designed to maintain long-lived, critical state (such as configuration information) and to synchronize distributed components. It works as follows: you define a Python object and give it to OpenReplica, and the service ensures that as many replicas as necessary are maintained on geographically distributed hosts.

To the rest of your application, your replicated object appears as a regular Python object. OpenReplica gives you a Python proxy class through which multiple clients can access the replicated object transparently.

OpenReplica ensures that new object replicas are dynamically created to compensate for any node or network failures involving your nodes. Our current implementation executes replicas on PlanetLab hosts distributed at academic sites around the globe, on failure independent hosts. You could also use the code behind OpenReplica to deploy on other hosts, and integrate with DNS and Amazon Route 53.

OpenReplica is similar to services such as Google's Chubby and Yahoo's ZooKeeper, except for a critical difference: OpenReplica provides an object-oriented interface to applications. Overall, OpenReplica differs from existing systems in the following ways:

The code base that powers OpenReplica is called ConCoord. ConCoord is open-source, and OpenReplica is a free service.