HaProxy handles many connections relatively well.. (taking into account CPU and Memory)
I have used in the past...
Heartbeat between servers using a ip resource.
and a haproxy running on each server
HaProxy obviously load balances to each servers apache..
So if either fail, heartbeat moves the resource and it continues running..
Consider how much bandwidth you will use..
It might be worth have some standalone servers for HaProxy on commodity hardware if you need to push alot of traffic..
Hope this helps :)