AEM Sites Developer Professional study materials
AEM Sites Developer Professional study resources

AEM Sites Developer Professional: Caching, Dispatcher and Deployment

AEM Sites Developer Professional · Work through your exam, one topic at a time.

All guide sections

Caching, Dispatcher and Deployment

Dispatcher is a caching reverse proxy

Apache httpd with the mod_dispatcher module sits in front of publish. Its config lives in dispatcher/src/conf.dispatcher.d (Cloud Service) or conf/dispatcher (6.5): dispatcher.any-equivalent farms, plus filters.any, cache.any and rules.any include files.

Key concepts a candidate must be able to reason about:

  • Filters are evaluated in order and the first match wins; a well-formed set ends with a catch-all deny. Allow /content, /etc.clientlibs, /libs/... only as needed, and never expose /apps, /bin, /crx or author paths.
  • Caching rules define which URL patterns are cacheable (/docroot, /glob, /type). Query strings break caching unless ignoreUrlParams whitelists the parameters that may still be cached.
  • Invalidation happens through flush agents (replication agents on publish, Dispatcher Flush type) that call the Dispatcher's /dispatcher/invalidate.cache endpoint. /statfileslevel sets how deep directory-level .stat marker files are written, which controls how broadly a flush invalidates. serveStaleOnError serves stale content rather than a 5xx when publish is down.
  • AEM as a Cloud Service adds a managed CDN; only the web tier (Dispatcher + vhost + filters) can be customised, via a web tier config pipeline. TTL headers and cache-control come from CDN config rather than only TTL rules in the farm file.

Worked example: a page at /content/mysite/en/page.html is served but never invalidates. Check (1) the flush agent on publish points at the right farm URL and is enabled, (2) filter rules allow the path and the invalidate endpoint, (3) statfileslevel isn't too shallow for the site depth, (4) query-string parameters are whitelisted in ignoreUrlParams so the cached variant matches what the flush targets.