A method for distributing flows of network traffic across a plurality of packet processing engines executing on a corresponding core of a multi-core device, the method comprising: (a) receiving, by a flow distributor of a multi-core device intermediary to a plurality of clients and a plurality of servers, a first packet of a first flow of network traffic between a first client of the plurality of clients and a first server of the plurality of servers, the first flow identified by application information of the first packet; (b) assigning, by the flow distributor, the first packet of the first flow to a first core of the multi-core device executing a first packet processing engine of a plurality of packet processing engines executed by the multi-core device, responsive to (i) identifying the first flow based on the application information stored in or carried by the content of the payload of the first packet and (ii) the first core establishing one of a session or a connection to the first server for the first client; (c) distributing, by the flow distributor, the first packet to the first core, responsive to the assignment; (d) distributing, by the flow distributor, a second packet of a second flow of network traffic between a second client and a second server to a second core executing a second packet processing engine of the plurality of packet processing engines, responsive to (i) identifying the second flow based on application information stored in or carried by the content of the payload of the second packet and (ii) the second core establishing one of a session or a connection to the second server for the second client; and (e) determining, by the flow distributor, to distribute to the first core a third packet, wherein the third packet is a packet for the first flow of network traffic and was received by the flow distributor from a receive-side scaler of the multi-core device and distributed by the receive-side scaler to a third core of the multi-core device based on an algorithm that is agnostic to the flow-based scheme desired by the flow distributor, wherein distributing the third packet to the first core comprises identifying the first flow based on application information stored in or carried by the content of the payload of the third packet, and responsive to said identifying redistributing the third packet to the first core. (a) receiving, by a flow distributor of a multi-core device intermediary to a plurality of clients and a plurality of servers, a first packet of a first flow of network traffic between a first client of the plurality of clients and a first server of the plurality of servers, the first flow identified by application information of the first packet; (b) assigning, by the flow distributor, the first packet of the first flow to a first core of the multi-core device executing a first packet processing engine of a plurality of packet processing engines executed by the multi-core device, responsive to (i) identifying the first flow based on the application information stored in or carried by the content of the payload of the first packet and (ii) the first core establishing one of a session or a connection to the first server for the first client; (c) distributing, by the flow distributor, the first packet to the first core, responsive to the assignment; (d) distributing, by the flow distributor, a second packet of a second flow of network traffic between a second client and a second server to a second core executing a second packet processing engine of the plurality of packet processing engines, responsive to (i) identifying the second flow based on application information stored in or carried by the content of the payload of the second packet and (ii) the second core establishing one of a session or a connection to the second server for the second client; and (e) determining, by the flow distributor, to distribute to the first core a third packet, wherein the third packet is a packet for the first flow of network traffic and was received by the flow distributor from a receive-side scaler of the multi-core device and distributed by the receive-side scaler to a third core of the multi-core device based on an algorithm that is agnostic to the flow-based scheme desired by the flow distributor, wherein distributing the third packet to the first core comprises identifying the first flow based on application information stored in or carried by the content of the payload of the third packet, and responsive to said identifying redistributing the third packet to the first core.