Anyone working with a web content management system in an enterprise environment knows caching is key, and one of the big challenges of caching is cache invalidation. In this first part of my two-part blog, I show that solutions exist – but not all solutions – or problems – are created equally. (Read part two here.)
Comunique, or CQ for short, was originally developed by Day software in 2002. The company was acquired by Adobe in 2010, and the product was renamed Adobe Experience Manager, or AEM. It is a web content management system (WCMS) that is widely used in enterprises for managing customer-facing websites and portals and also for non-public systems, such as intranets. AEM offers up and suggests as part of its standard infrastructure, which might be sufficient under fairly standard conditions for fairly standard needs, the Adobe dispatcher. Adobe recommends using the Adobe dispatcher for caching pages as rendered by the publish instance and letting them be served by the HTTP server directly. This setup is sometimes enough.
But what if your needs diverge from the “standard”? (And really, who is to say what “standard” is? You may not need flexible cache invalidation today, but you don’t know when that might change.)
A dispatcher is relatively straightforward and has specific, built-in rules in place for invalidation. This is where the Adobe Dispatcher shows its limitations because built-in rules are not always flexible enough. Of course we want to cache content for performance, but we want to be able to approach this flexibly and more granular control.
If one needs to be able to specify caching and flushing rules which are very fine granular dispatcher configurations reach their limitation.
What is the alternative?
How to overcome the limitations of Adobe Dispatcher
Consider the specific limitations of the Adobe Dispatcher. It caches documents as delivered in the AEM instance. It does not cache, for example, HTTP headers, which provide instruction as to how content is handled. Adobe Dispatcher only holds onto the document itself but not the accompanying HTTP response. It’s not that the Adobe Dispatcher cannot handle this kind of thing – it’s that creating additional rules in your HTTP server adds layers of extra work while using Varnish Cache Plus from the get-go delivers caching flexibility. Happily, you can replace Adobe Experience Manager’s dispatcher with Varnish Cache.
Varnish Cache Plus provides the ability to cache HTTP requests and responses and is configurable to cache any kind of HTTP request you want to capture. This kind of complex configurability is essential for, for example, online media and news entities. With enhanced cache invalidation, these kinds of users can purge content using key-based relationships (headers or sets of headers) that are maintained in every cache. This allows for scalable cache invalidation, which dramatically increases the hit rate of the cache, as the TTLs of objects can be extended longer.
Many enterprises will find that they reap benefits from this replacement, including:
Granular cache invalidation
Excludes from cache
Invalidation of a page using “smart bans”
Invalidation from CQ Publisher with Modification Listener
Dispatcher replacement is not going to be for everyone nor does everyone have this kind of need. But media and publishing as well as finance and banking entities need the kind of hands-on, flexible control over invalidation that the built-in solution doesn’t provide.
One real-world example of this is UBS, in their effort to implement AEM as part of their e-channel solutions. UBS implemented external and internal-facing CDNs; the externally facing CDNs accelerated content distribution externally while, with Varnish Cache, integrated with AEM as a replacement for the Adobe Dispatcher, UBS created an internal CDN for internal data centers. UBS, like all financial institutions, has its hands tied by complex, multinational data protection laws and industry-specific data security restrictions. As UBS aimed to launch their new website using SaaS solutions that could be tailored to comply with these strict and varied requirements, granular control coupled with efficiency was the clear choice.
In the second part of this blog series, we’ll discuss how to replace the Adobe Dispatcher. Make sure to subscribe to this blog!