A font update shipped with a new query param on the CSS reference, so the cache busting should have just worked. It did not. Here is the full chain: dispatcher cache, an Akamai setting called ignore query params, and a NetStorage file that was never actually updated.
Aem
Field notes on AEM, Java, web development, performance, tooling, and the little fixes that save future-you an afternoon.
Blog post about a collection of AEM cheat sheets used in daily AEM development.
Read featuredBrowse the archive
Latest Articles
A simple, no jargon walkthrough of AEM workflow basics: models, instances, steps, launchers, and every out of the box step type explained plainly.
A plain guide to customizing AEM workflows in Cloud Service. Custom process steps, custom launchers, post processing for assets, and what Adobe locks down.
Advanced AEM workflow techniques explained simply. Transient workflows, handling failures and retries, and patterns that keep workflows fast at scale.
A complete, buildable AEM workflow: real model XML, custom process step and participant chooser Java code, launcher config, for a multi region content approval and translation flow.
Real AEM architect interview scenarios on workflows, with model answers, covering the basics, customization, advanced patterns, trigger design, and the mistakes that sound right but do not scale.
Learn what causes SegmentNotFoundException, why it happens, and how to fix and prevent repository corruption in TarMK
Learn about the AEM Dispatcher in perspective of developer, why it exists, and how it works as both a caching and security layer.
A detailed walkthrough of the dispatcher.any configuration — explaining its key sections like /cache, /filter, /renders, and /farm. Learn how to read, structure, and maintain it properly.
A detailed walkthrough of the Dispatcher `/filter` Rules
A detailed walkthrough of the Dispatcher `/cache` Rules
Understand how AEM keeps cache fresh using the .stat file mechanism. Learn when and how Dispatcher marks content as stale, what /statfileslevel does, and how asset updates trigger invalidation.
Connecting Dispatcher to multiple Publish instances, handling logged-in user sessions securely, and implementing vanity URLs using Apache mod_rewrite.
A practical guide to fixing common Dispatcher problems — stale pages, 403/404 errors, and caching issues. Learn how to read logs, test configurations, and debug step by step.
The most common interview and practical questions around AEM Dispatcher. Perfect for refreshing concepts or preparing for real-world discussions.
Most AEM performance issues stem from inefficient query usage. This post explains when to use Query Builder vs SQL2, highlights common mistakes like missing indexes, fetching too much data, and running queries in loops, and provides practical best practices for optimized, scalable, and memory-safe queries in asset-heavy projects.
When to close a ResourceResolver in AEM, when leaving it open is actually correct, and the resource-leak and session-reuse pitfalls that catch most developers.
Why path-based servlets are one of the biggest security risks in Adobe Experience Manager, how attackers discover and exploit them, and how to build secure resource-type servlets.
This blog post explains how to create a custom service in AEM to monitor replication queues. The service checks if the queue is blocked and sends notifications to admin users if issues arise. It also includes a scheduler to automatically run the monitoring at set intervals.
Learn how to display a spinner dialog and block user input during REST API calls in AEM by using Coral UI.
Blog post about a collection of AEM cheat sheets used in daily AEM development.
Check out this unique collection of useful cURL commands for Adobe Experience Manager (AEM). These commands, gathered from various sources, will help make your AEM tasks easier
Discover how to add a custom attribute or element search for dita content in aem assets ui.
AEM tutorial shows you the best way to fetch resources using resolver and avoid common pitfalls.
Find out how to make your AEM system safer by learning how to switch the port it runs on. Explore AEM settings to change the port.
This post provides an in-depth tutorial for mastering XPath queries in Java, covering setup and practical examples for efficient XML document manipulation.
Learn how to register/invoke a servlet on all pages of AEM.
Learn how to perform offline compaction in aem to reduce the repository size on windows machine.
Learn how to find the version of AEM currently in use.
Learn how to backup or restore local AEM instance using npm cli.
Learn about difference between jcr:lastModified and cq:lastModified in AEM
Most useful SQL2 and Xpath queries.