How do you setup proctor

98 views
Skip to first unread message

Fer Otero

unread,
Nov 5, 2015, 9:36:31 AM11/5/15
to indeedeng-proctor-users
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!

 




matts

unread,
Nov 6, 2015, 1:02:54 PM11/6/15
to indeedeng-proctor-users
Hi, and thanks for your interest in Proctor!


You are correct that two calls to determineBuckets will return the same set of buckets for the same identifier, so long as both nodes have the same test matrix loaded.

You don't need to use cookies at all to use proctor - the test bucket assignments are quick to determine, so they are re-determined on every request. Consistency across the session happens because the assignment is a deterministic function of the hash, so the same identifier+test matrix will always result in the same assignments. See, for some detail:
http://engineering.indeedblog.com/blog/2014/06/proctor-a-b-testing-framework/

You'll often will use cookies for a couple of reasons. First, cookies are a pretty typical way to identify an otherwise anonymous user (similar to an ASPSESSIONID or JSESSIONID). Second, if you read about "forced groups" in the proctor documentation, you'll see that proctor will set cookies to let you force yourself into a specific test group, generally for development and QA purposes.


I hope that answers your question. If you're seeing some behavior you don't expect or don't understand, feel free to reach back out.
Reply all
Reply to author
Forward
0 new messages