A system or framework for high availability clustering that includes a cluster server having a variety of resources and interfaces, including a cluster application program interface, group services, failure management, resource management, membership services, communications, a heartbeat interface, cluster database and management, a JNDI interface, and a resource API interface. The resource API allows the cluster server to talk to a variety of plug-ins, which in turn interface with other resources and application servers and support high availability framework for those resources and servers.