Skip Main Navigation

Cache is King: The Life Beyond the Adobe Dispatcher

Dispatcher is a power tool in AEM for caching and/or load balancing. Nevertheless, it has its limitations and here you can learn how to overcome them.

Cache is King: The Life Beyond the Adobe Dispatcher

The infrastructure used for Adobe Experience Manager (AEM) tends to be quite similar. A couple of authoring and publishing instances, an HTTP server loaded with the Adobe dispatcher in front of them, and some load balancing according to your needs. This model is probably the one you have been using in most of your AEM projects, and why shouldn’t you? It's what Adobe recommends. The dispatcher allows you to cache pages as rendered by the publish instance and let them be served by the HTTP server directly. You might want to make some tweaks over the dispatcher configuration and the HTTP server, but that's the end of business, right?

Where does the Adobe dispatcher fall short?

Well, the dispatcher has many limitations. It's cache is based entirely in the filesystem. It only caches documents as they were delivered in the AEM instance. This means some important information is never cached; A perfect example of this is the HTTP headers. 

Imagine you want to deliver some files as downloads in a web site. You probably want to add a Content-Disposition header in the response to make sure the browser handles the response as a download. Unfortunately, the dispatcher will only preserve the document itself, not the http response, forcing you to create additional rules in your HTTP server to add the header for those requests. This results in twice the effort.

So how can one overcome these limitations?

Here is where an alternative can help, allow me to introduce you to The Varnish Cache. This nifty cache system allows you to cache HTTP requests and their response, not just files. Varnish can be vastly configured to cache whatever we need based on HTTP requests. That means Varnish can do some nice tricks: 

  • Cache HTTP headers:Solving our previous dilemma.
  • Cache requests with a query string:And requests without a file extension. Great if you ever abused selectors.
  • Cache redirect responses:Which can drastically reduce load in the instance.
  • Cache non AEM requests:Useful to integrate external systems.

All these come along with great performance. Varnish is a in-memory cache and its configuration is actually compiled, allowing it to perform at blazingly fast speeds! 

In addition to these features Varnish offers some nice perks: 

  • Asynchronous processing of requests
  • Request queueing:Which becomes of vital importance when caching a heavy pages under heavy load.
  • High customization of cache flushing:No need to flush your home page every time you flush something below it.
  • Edge Side Includes.

Of course, these features do not come for free. I won’t enter into the details of setting up a Varnish instance suitable for working with AEM, but it requires great technical knowledge of Varnish, AEM, and HTTP as well as some effort to create a working Varnish configuration. Leveraging Varnish Cache in your infrastructure can be as rewarding as it is challenging. 

Does this means I should just ditch my dispatcher settings and set up a Varnish instance? Well, it depends (you were expecting this, weren’t you)? The dispatcher might lack several features available in Varnish, but it is made specifically to work with AEM, so setting it up is easier and cheaper. You need to make an analysis of your current infrastructure to find specific problems or opportunity areas that you wish to engage before making an expensive migration. Also, you might not have the correct set of expertise within your organization, which can be hard and expensive to obtain.

Where can you go for further questions with varnish?

As with most important decisions made within a project, you need to think about what you are trying to achieve. Having said that, jumping on the Varnish bandwagon will prove to be an exciting and valuable experience for you and your team. 

Netcentric has been very successful in aiding clients become successful with Varnish adoptions. If you are not sure whether Varnish is a good match for your organization, we would be thrilled to help you figuring it out. If you have any questions, please feel free to send them to and one of our team members will reach out to you shortly.

Santiago García Pimentel

Senior - Back-end Software Engineer

More Content Management

  • Why does real-time personalization matter?

    Remo Brechbuehl

    Business Consultant

    Remo Brechbühl has gained diverse experience in marketing, business development and strategy. During his assignments he could prove his capabilities in project management, designing strategies, customer journey mapping, and stakeholder management. He emphasis the importance of value co-creation and an analytical approach to drive an immersive user experience. Remo holds a Master’s (CEMS) degree (MSc) in International Management and a Master’s degree (MA) in Marketing, Communication and Services.

  • Introducing the Sitecore connector: unlocking Adobe AEM Assets for more authors

    Mark van der Wal

    Executive Director Business Development Nordics

    With 25 years of corporate and agency experience in the digital domain in expert and leadership roles, Mark brings a huge amount of entrepreneurial spirit and experience with enterprise clients like Philips, Rabobank and Liberty Global to the table. With a passion for new technologies and his digital marketing background, he is able to guide clients in their digital transformation and create relevant and long term business value.