Skip to content

AEM Architecture: The Stack, AEM 6.5 Topology and AEM as a Cloud Service

AEM architecture with diagrams: the Java, OSGi, Sling and Oak stack, author, publish and Dispatcher on AEM 6.5, how AEM as a Cloud Service is built, and Edge Delivery Services.

Written in October 2026 and checked against Adobe's architecture, replication and deployment documentation for AEM 6.5 and AEM as a Cloud Service.

On this page
  1. The technology stack
  2. AEM 6.5: author, publish and Dispatcher
  3. AEM as a Cloud Service
  4. Edge Delivery Services
  5. Which architecture you are on
  6. Common questions

Adobe Experience Manager comes in three architectures today: AEM 6.5 (with its successor AEM 6.5 LTS) installed on your own servers, AEM as a Cloud Service run by Adobe, and Edge Delivery Services, which renders pages at the edge. All three share the idea of separate authoring and delivery, but they are built very differently. This page goes through the stack first, then each architecture, with a diagram for each.

The technology stack

Under every AEM 6.5 and AEM as a Cloud Service instance sits the same stack, from the bottom up:

LayerWhat it is
JavaAEM is a Java application: Java 8 or 11 on AEM 6.5, 17 or 21 on 6.5 LTS, a Java 21 runtime on AEM as a Cloud Service. See Java in AEM.
OSGi (Apache Felix)The module system. Code is deployed as bundles that can be installed, started and updated without restarting the server.
Apache SlingThe web framework. Sling maps a URL to a resource in the repository, then uses the resource's sling:resourceType to pick the script or servlet that renders it. A URL breaks down into path, selectors, extension and suffix.
HTLThe template language components are written in. See HTL tutorials.
JCR and Apache Jackrabbit OakThe content repository. JCR 2.0 (JSR-283) is the API, and Oak implements it. Everything lives in it as nodes and properties: pages, assets, code under /apps, configuration under /conf.
Node store and data storeWhere Oak keeps its data: a segment store (TarMK) or a document store on MongoDB (MongoMK) for nodes, and a data store (file system, Amazon S3 or Azure) for binaries.
Apache and DispatcherAdobe's Dispatcher module for Apache httpd caches pages, balances load and filters requests in front of publish.

Storage in AEM 6.5 is covered in more depth in storage concepts in AEM 6.5.

AEM 6.5: author, publish and Dispatcher

AEM 6.5 architecture diagram: author, replication, publish instances with Dispatcher, load balancer
  • Author (port 4502 by default) is where content is created and approved.
  • Replication agents on author push published content to each publish instance (port 4503).
  • A Dispatcher in front of each publish caches the rendered pages as files. When content changes, a flush agent tells it to invalidate the cache. Requests with a query string, without an extension or with authentication headers skip the cache by default.
  • Reverse replication brings content created on publish, such as form submissions, back to author.
  • A load balancer or CDN sits in front of the Dispatchers.

Which storage for which instance

Adobe's recommended deployments for 6.5 are:

  • TarMK for author by default, with optional Cold Standby for manual failover;
  • a TarMK farm for publish, where each publish has its own repository and capacity grows by adding instances;
  • a MongoMK cluster for author only when one author server cannot cope, which Adobe puts at thousands of named users a day or hundreds working at the same time. Adobe advises against MongoMK on publish.

Binaries belong in a shared file data store or S3, not in MongoDB.

AEM as a Cloud Service

AEM as a Cloud Service architecture diagram: author cluster, replication service, publish farm, preview, CDN, cloud data store, asset microservices, Cloud Manager

Tap or click a diagram to open it full size. Adobe calls the cloud architecture a complete redesign of AEM 6.x. The main pieces:

  • Author runs as a cluster of at least two pods sharing one repository.
  • Publish is a farm of at least two pods. Each pod has its own repository with the published content and its own Apache and Dispatcher, and serves as an origin for the CDN. Pods are added automatically when traffic grows.
  • Preview is a single node for checking content before it goes live.
  • The replication service replaces replication agents. Author hands content to Sling Content Distribution, which feeds a pipeline service outside AEM. Publish pods subscribe to its content queues, so author does not need to know how many publish pods exist. That is what makes autoscaling possible. The Replication Java API still works, with two targets, publish and preview.
  • The CDN is included and managed by Adobe. The architecture page does not name the vendor; Adobe's domain and log-forwarding documentation shows it is Fastly.
  • Binaries live in a cloud data store. They are uploaded to it and served from it directly, never streamed through the AEM pods, which keeps the pods small and quick to start. Asset microservices read the files from there to create renditions.
  • Everything runs as containers managed by an orchestration service. Cloud Manager's pipeline turns your code into the images, and it is the only way code reaches an environment.

How Cloud Service updates without downtime

The repository is split in two. Each AEM version has its own read-only part that holds /libs and /apps, and all versions share one writable part with /content, /conf, /var and the rest. Oak combines the two with a composite node store. During an update or a deployment, pods running the new version start next to the old ones, pass health checks and take over traffic, and the old pods are removed. This is also why /apps and /libs cannot be changed at runtime in the cloud.

The practical differences for teams moving from 6.5 are summed up in AEM as a Cloud Service and the FAQ.

Edge Delivery Services

Edge Delivery Services has no AEM publish instance at all. Its architecture works like this:

  • Content comes from AEM author with the Universal Editor, or from documents: Word and Excel in SharePoint, Google Docs and Sheets, or Adobe's Document Authoring.
  • Publishing goes through an API in two steps. Preview pulls the content from its source; publish pushes it to delivery and purges the CDN.
  • Content, media, code and configuration are kept in separate stores. Media files are addressed by a hash of their content, so they can be cached forever.
  • Serverless functions render the content into plain HTML, which a CDN serves. The CDN can be Adobe's, or your own Akamai, Cloudflare, Fastly or CloudFront.
  • Code lives in GitHub. Every branch gets its own URL on aem.page (preview) and aem.live (live).

Adobe now recommends Edge Delivery Services as the starting point for new projects. It can share one domain with AEM Sites pages and with Assets.

Which architecture you are on

AEM 6.5 / 6.5 LTSAEM as a Cloud ServiceEdge Delivery Services
Runs whereYour servers or a host of your choiceAdobe's cloudAdobe's edge and serverless platform
RenderingPublish instances and DispatcherAutoscaled publish farmServerless functions at the edge
PublishingReplication agentsSling Content DistributionPreview and publish API
CodePackages, changeable at runtimeGit and Cloud Manager onlyGitHub
UpdatesService packsContinuous, by AdobeContinuous, by Adobe

Common questions

What is AEM built on?

Java, OSGi through Apache Felix, the Apache Sling web framework, and a JCR repository implemented by Apache Jackrabbit Oak, with Apache httpd and the Dispatcher in front.

What is the Dispatcher?

Adobe's caching and load-balancing module for Apache httpd. It stores rendered pages as files and serves them without asking AEM, until a flush invalidates them.

TarMK or MongoMK?

TarMK, unless an author installation is too busy for one server. MongoMK is meant for large author clusters, never for publish.

How does publishing work without replication agents in the cloud?

Through Sling Content Distribution and Adobe's pipeline service. Publish pods subscribe to content queues and pick up new content themselves.

Related: AEM headless tutorial, AEM Core Components and hiding /content in publish URLs.

More in Architecture and platform