There are three levels of cluster membership, each one allowing different actions and each requiring the one before it.
The first and lowest is that provided by Heartbeat. This level allows messages to be sent to other nodes on the network also running Heartbeat and provides notification of other ClusterNodes coming up or going down. In its current incarnation, this level also allows you to perform ResourceAllocation between two ClusterNodes, this will no longer be the case once the new ClusterResourceManager is mandatory.
The next level is that provided by the ClusterConsensusManager. This level provides interested parties with a list of FullyConnected ClusterNodes by subscribing to the node-up, node-down events from Heartbeat and by also using it as a reliable messaging layer to send "ping" messages to other ClusterNodes as well as other wonderful things I'll come back to one day.
The third is provided by ClusterResourceManager. This level allows ResourceAllocation across N ClusterNodes. It utilizes the list of FullyConnected ClusterNodes provided by the ClusterConsensusManager to elect a DesignatedController.