"In this article, we describe a method to manage a
highly-available, heterogeneous, multi-application cluster of
nodes. Within the highly available cluster, each application has a
different availability profile; that makes our solution inherently
more complex than the simple high-availability solutions of single
application classes, such as databases.
"Our solution was to come up an algorithm (protocol) to
accommodate a first and second failure of application (or nodes)
within the highly available cluster. This protocol provides the
precise failover sequence for each of the application nodes in the
cluster. It takes into consideration the fact that, in some
environments, degraded performance is not acceptable."