1. A method of balancing loads in a communication network, said method comprising: tracking active network flows by adding flow identifiers for the active network flows to a Bloom filter; creating a snapshot of the Bloom filter responsive to a scaling event, the snapshot being indicative of a set of network flows active prior to the scaling event; comparing flow identifiers for incoming packets with the Bloom filter snapshot to differentiate between pre-existing network flows active prior to the scaling event and new network flows active only after the scaling event; distributing packets for pre-existing network flows among a first set of service instances according to a first mapping function; and distributing packets for new network flows among a second set of service instances according to a second mapping function; creating one or more per-flow mapping rules for the pre-existing network flows responsive to matches with the Bloom filter when matches between the incoming packets and the Bloom filter drop to a first predetermined level; switching from distributing packets for a pre-existing network flow according to the first mapping function to distributing packets for the pre-existing network flow according to a per-flow mapping rule if a per-flow mapping rule exists for the pre-existing network flow.