All the computation like deciding user eligibility for a campaign and variation assignment to a user are carried out by smart SDKs. We use a hashing algorithm MurmurHash to carry out our bucketing logic.
VWO also ensures that all of our SDKs give the same output. The bucketing user is language-agnostic.