1. A method of providing a high availability application using a network-based system including a plurality of clients and a plurality of servers comprising: pinging at least one of the plurality of servers; determining a finite state table based on a status of the pinged servers, the finite state table defining status of at least one of the plurality of servers; selecting at least one server based on the finite state table; and providing the high availability application from the selected at least one server to at least one of the clients, wherein providing the high availability application includes minimizing system outages.