The most well-known component of the Linux-HA project is Heartbeat. Heartbeat sends heartbeat packets across the network (or serial ports) to the other instances of Heartbeat as a sort of keep-alive message.
When heartbeat packets are no longer received, the node is assumed to be dead, and any services (resources) it was providing are failed over to the other node. This assumption of death can be assured to be true by the proper integration of STONITH or a watchdog timer.
Heartbeat can also monitor routers and switches as though they were cluster members using the ping or ping_group directives. Combined with the ipfail program, Heartbeat can also cause failovers when networking connectivity is compromised.
Heartbeat provides services (which it calls resources) as configured in the haresources file. The services in the haresources file are started in a left-to-right order, and stopped in a right-to-left order.
Heartbeat uses a multicast communications protocol to deal with lost and corrupted packets.