A migration framework provides for the automatic migration of services in
a cluster. A migratable target list contains a list of servers in the
cluster capable of hosting a migratable service. A consensus subsystem
can select a host server from the migratable target list. A migration
manager can migrate the service from a current host to the host selected
by the consensus subsystem, and can activate an instance of the service
on the selected host server. The migration manager ensures that only one
active instance of the service exists in the cluster. A service stub can
serve a user request on servers in the migration target, such as by order
of preference, until the user request is served on the server hosting the
active instance. A lease manager can assign a lease period to determine
how long a server hosts an active instance.