A method of maintaining a session via an intermediary, comprising: receiving, by a first device intermediary to a client and a plurality of servers, a packet of a session between the client and a server of the plurality of servers, the packet comprising application protocol data and application session metadata used to maintain a state of an application accessed via the session; determining, by the first device, that a second device intermediary to the client and the plurality of servers is in a ready state; setting, by the first device responsive to determining that the second device is in the ready state, a parameter of the session to a first value, the first value being an indication to forward the application protocol data and the application session metadata to the second device; forwarding, by the first device to the second device, based on the first value of the parameter set responsive to the determination that the second device is in the ready state and the session is in an update state, the application protocol data and the application session metadata of the packet; parsing, by the second device, the application protocol data and/or the application session metadata received from the first device to determine and maintain on the second device, the same state of the application accessed via the session to enable the second device to take over the session responsive to the first device failing or becoming unresponsive; subsequent to forwarding the application protocol data and the application session metadata of the packet to the second device, detecting, by the first device, that the second device is not in the ready state; and setting, by the first device, the parameter of the session to a second value, the second value being an indication not to forward application protocol data and the application session metadata to the second device receiving, by a first device intermediary to a client and a plurality of servers, a packet of a session between the client and a server of the plurality of servers, the packet comprising application protocol data and application session metadata used to maintain a state of an application accessed via the session; determining, by the first device, that a second device intermediary to the client and the plurality of servers is in a ready state; setting, by the first device responsive to determining that the second device is in the ready state, a parameter of the session to a first value, the first value being an indication to forward the application protocol data and the application session metadata to the second device; forwarding, by the first device to the second device, based on the first value of the parameter set responsive to the determination that the second device is in the ready state and the session is in an update state, the application protocol data and the application session metadata of the packet; parsing, by the second device, the application protocol data and/or the application session metadata received from the first device to determine and maintain on the second device, the same state of the application accessed via the session to enable the second device to take over the session responsive to the first device failing or becoming unresponsive; subsequent to forwarding the application protocol data and the application session metadata of the packet to the second device, detecting, by the first device, that the second device is not in the ready state; and setting, by the first device, the parameter of the session to a second value, the second value being an indication not to forward application protocol data and the application session metadata to the second device