To enhance reliability of distributed systems, replication techniques are used. We propose an adaptable replication scheme that enables an object to adapt itself to provide a replicated service, and a replicated object to choose the replication strategy that best fits to achieve its requirements. What kind of replication strategy should be used depends on an execution environment as well as an application.
The adaptable replication scheme permits replacement of down replicas, or change of the number of replicas when partial failures occur and chooses the most adequate consistency protocol for the current configuration. Clients to the recently adapted objects for replication should take actions that enables then to obtain a thorough service of the replicated object.
The adaptable replication scheme is being designed as part of the Juice system. The Juice object model allows objects to change its behavior on the fly by replacing some components in a modular way.