I have a backend pool of servers (around 20 hosts) that serve the request. Out of 20 hosts, 5 are canary hosts (we deploy any change first in these 5 hosts and then to the rest 15).
The request comes to HAProxy which redirects it to the backend and it's randomly distributed which host will process the request.
Now, when we release any change (that involves changing the definition of response to the user), a user request will go sometimes to the canary host and sometimes to the regular host. This might result in returning inconsistent data back to user.
Is there a way in haproxy where we can say for next 15mins-20mins redirect request coming from this user (i.e. client IP) goes to a host in the backend that last served the request for the client?
Can stick table help in this scenario?