I'm currently starting a POC with Proctor, I'm wondering what's the best strategy to support consistency between nodes.
What I mean is: I have a generated instance of AbstractGroupsManager on node A and another one on node B. I guess (hope) that 2 calls to
groupsManager.determineBuckets with an identifier created with the same parameters will generate the same groups.
My architecture has a layer of java services, I plan to add a servlet filter that determines the bucket for each user. Those java services are consumed by some other nodejs and php services that are the "front end layer" (basically end users consume services from node/php and that layer is just a proxy for the java services).
It's quite easy to generate the JavaScriptConfig in the filter itself and add that info in a response header (or cookie) and all that seems to be working on my local environment (just one node with everything on it). I guess proctor generates a hash function, calculates a hash on the userID and basically flips a coin with the probability you set up on the test definition and (that will be consistent on each node) and will distribute buckets accordingly (if traffic is high enough)
Now I think I'm missing something... I took a quick peek at the code and it seems like proctor uses cookies for something but I'm not sure for what and since that cookie will be basically ignore by my front end layer I'm wondering what's the purpose of that.
Thanks!