the key thing to note is understand your application and its performance impact, and design your system around the app, i've never had issues with "soft" load balancers like haproxy - in many cases you get better control out of soft load balances over hardware ones, and better failover...