Skip to main content
Caching and server-side testing

How Kameleoon removes the caching constraint from server-side testing

October 13, 2020
Reading time: 
5 minutes
Frédéric de Todaro
Fred De Todaro
Fred is Kameleoon's Chief Product Officer and leads the company's A/B testing, feature management, and personalization product strategy. Leading product teams across Europe and North America, he regularly shares his advice on product trends in experimentation and how best to deploy Kameleoon technology.

This is the second in our current two-part series looking at how Kameleoon helps improve your experimentation strategy through its advanced technology. Click here to read our first blog on hybrid experimentation. In this article we look at successfully integrating testing into your caching infrastructure.

Many large enterprise brands with high traffic volumes deploy a web caching strategy to ensure optimal performance. This essentially means that web content (web pages, images, videos, etc.) is stored closer to the user, on specialised caches or content delivery networks (CDNs), so that it can be delivered to website visitors more quickly when they click on a specific page or asset.

As well as improving the user experience it also reduces bandwidth costs for brands and ensures that their sites can scale to cope with peaks in traffic, because the origin server (the web application server) does not have to do the work of generating pages from scratch each time.

1 The impact of caching on experimentation and personalization

While caching delivers a better user experience it can be a major block to running successful server-side experimentation and personalization programs. Traditional server-side testing SDKs cannot be used within these caching configurations.

This is because a request for a particular page will not always reach the back-end application servers, as this diagram shows, or worse, an experiment variant can be cached and served to every subsequent visitor.

Impact of caching on experimentation

Essentially if a user asks for a particular page a front-facing web server checks whether it has it in its cache, and if it does it responds directly with a cached version of the requested page. The user is therefore served the cached version of the page, irrespective of whether there are experimental variants or personalizations running on it.

This has two major drawbacks for personalization and experimentation:

Brands cannot deliver personalized experiences

As every visitor that clicks on a particular page receives the version in the cache, it is impossible to personalize it, based on their behavior or audience segment. So everyone sees the same page, missing out on the benefits of personalization.

The same experimental variant is sent to everyone

If you are running an A/B test you need to split your traffic equally between the different variants in the experiment. However, if the first visitor to a page is served a specific variant, and this is then cached, every subsequent visitor will see the same variant. This means you cannot compare results and the results of the whole experiment are rendered meaningless.

2 Introducing server-side experimentation at the web server level with Kameleoon

Until now, enterprise brands have had to manage this issue manually, either through workarounds, not delivering personalizations on specific pages, or disabling caching of pages that have experiments or personalizations running on them. This impacts performance and the user experience, negating the entire reason for deploying a cache.

To overcome this problem and to provide greater flexibility and agility, Kameleoon has released web server modules to allow server-side testing with the most used web servers in the market: Nginx (33% market share) and Apache (36% market share).

Server side experimentation at the web server level

Initially available in beta and already deployed by several Kameleoon enterprise clients, Kameleoon web server modules automatically manage how experiments are served to visitors within a caching architecture.

Delivering reliable results

Our approach delivers three key benefits to clients and their customers:

Reliable results

Brands can be confident that variants and controls within A/B tests are receiving the statistically correct split of traffic, ensuring that experimental results are reliable and can be used to drive sound business decision making. Visitors receive a personalized experience, rather than a generic page delivered from the cache, increasing engagement and conversions.

Reduced administration

As Kameleoon automatically handles how experiments integrate with caching infrastructure, brands do not need to spend time and resources manually working around caching issues or following complex processes to ensure success.

Greater performance

As caching does not need to be disabled for pages running experiments or personalizations, site speed and performance improves for visitors. This has a direct impact on satisfaction and conversions, delivering further business benefits to brands.

To read the first blog in this series, looking at hybrid experimentation, simply click here.

If you are already a Kameleoon client then learn more about our server-side caching solution and how it helps your brand by contacting your Customer Success Manager now.

Topics covered by this article
Frédéric de Todaro
Fred De Todaro
Fred is Kameleoon's Chief Product Officer and leads the company's A/B testing, feature management, and personalization product strategy. Leading product teams across Europe and North America, he regularly shares his advice on product trends in experimentation and how best to deploy Kameleoon technology.
6 steps to move to server-side testing
Recommended articles for you