1. A system comprising a processor and memory that facilitates stateless, affinity-preserving load balancing among a plurality of hosts, comprising: a routing component that receives and processes a stream of packets for one or more hosts, each packet has a session ID unique to its session, and distinguishes the first packet of a session from the rest of the packets in the stream; and a routing function independently generated by the routing component to preserve session affinity, so that packets of the same session are routed to the same host based on the session ID, and to provide for a balanced distribution of the packets among the hosts, wherein the routing function is identical to another routing function generated by another routing component, the routing function is generated using shared information about a state and an availability of the plurality of hosts, the routing function defines a relationship between a received packet and a subset of the hosts; the routing component that generates a new routing function to reflect a change in the availability of the plurality of hosts, the new routing function is added for processing in parallel with the routing function by applying a corresponding session ID to both the new routing function and the routing function, when results from the new routing function and the routing function differ for a packet, the packet is duplicated and sent to hosts corresponding to both the new routing function and the routing function.