The Dispatcher is an integral part of each AEM setup. It is a module for different web servers, such as Microsoft IIS or Apache httpd – the latter being the one more commonly used. While there are many tasks a Dispatcher can take over, it’s main purposes are:
- Caching
- Filtering
The Dispatcher can also be used for load balancing but in most deployments, that will be handled by a dedicated (Enterprise) Load Balancer and not Dispatcher. In fact, I highly recommend to have a 1:1 relationship between Dispatchers and AEM publishing servers which conflicts with using the dispatcher as a load balancer.
This short post is not aiming to reproduce the extensive documentation that is already available around AEMs Dispatcher. It rather collects valuable resources as a starting point to learn more about this important part of the AEM stack.
Starting your Dispatcher journey
There is an extensive documentation on setting up the dispatcher starting from this general overview.
You may want to start with this short video providing a high level idea on what dispatcher does. If you want to go more into detail, I highly recommend the AEM Dispatcher Cache Tutorial – which has been called “Dispatcher Cache demystified” during its creation. It covers all relevant patterns, underlying concepts and clarifies how the Dispatcher works with great insights into all relevant details. You will find the most common pitfalls and recommendations on how to avoid them.
Getting hands-on
Once you have enough theoretical knowledge, you may want to get hands-on. The easiest way is levering the recently released Dispatcher Docker image from Adobe Consulting. It provides an easy to setup playground to locally verify your configurations and patterns. If you are working with AEM as a Cloud Service, the AEM SDK from Adobes Software Distribution portal also comes with a similar setup. There is also a documentation around local Dispatcher setup that you can refer to.
If you want to take the hard route for your local setup or need the dispatcher module for your environment setup, you can find the latest release here.
Once a local Dispatcher is running, you may want to run through the Dispatcher Examples to gain a better understanding and some hands-on practice about how the most important configuration settings work.
Getting real
For real world projects, it is highly recommended to bootstrap your code base with the AEM Maven Archetype. It comes with a predefined template for dispatcher configurations that already reflects the required layout for configuration deployment through Adobe Cloud Manager for both, Cloud Services and Adobe Managed Services setups.
Once you have your project-specific configuration setup and in place, please also make sure to go through the Dispatcher Security Checklist and reflect all requirements and recommendations in your configs.
If you are looking for help on a specific topic around Dispatcher configurations, you may also want to check the Dispatcher Knowledge Base which holds a long list of articles.
I also highly recommend this talk from the adaptTo() conference 2023 on TTL (time-to-life) based optimization of the Dispatcher.
Additional Resources
- Dispatcher Overview
- Introduction to Dispatcher
- AEM Dispatcher Cache tutorial
- Dispatcher Docker image
- Dispatcher Download
- Dispatcher template from AEM Maven Archetype
- Dispatcher Examples
- Dispatcher Security Checklist
- Dispatcher Knowledge Base
- adaptTo() 2023 – Dispatcher Caching: Best Practices for TTL-Based Optimization