Development

Adobe provides the following links as additional, supplemental information based on goals, use case needs, and discussions within lab sessions. This information is intended to augment the experience gained from the Customer Experience Lab curriculum.
Fundamentals
AEM as a Cloud Service Documentation Home — Full product documentation hub covering all AEM Cloud Service solutions
What's Different from AEM On-Premise and AMS — How the cloud architecture changes the developer experience: ephemerality, clustering, immutable vs. mutable content, and no OSGi web console
Development Guidelines — Core rules for writing cloud-safe code: no filesystem state, resilient background jobs, HTTP timeout requirements, and cluster-aware patterns
AEM Architecture Overview — The logical and service architecture: author/publish/preview tiers, Cloud Manager's role, and how environments are typed (dev, stage, production, RDE)
Local Development Environment
SDK Overview & Quickstart Jar Setup — Downloading the SDK, starting author (4502) and publish (4503) instances from the command line, and strategies for persisting content between SDK upgrades
AEM Maven Project Archetype — Project structure, package layout, and the separation of mutable vs. immutable content in the standard Maven multi-module project
Dispatcher SDK & Tools — Running and validating Dispatcher configuration locally using Docker before pushing to Cloud Manager
WKND Tutorial: Getting Started — End-to-end reference implementation covering component development, HTL, Sling Models, and project structure in the context of AEM as a Cloud Service
Core Development Concepts
HTL (HTML Template Language) — AEM's server-side templating language: expressions, block statements, and how it interfaces with Sling Models
Sling Models — Annotation-driven Java POJOs for mapping JCR properties and OSGi services to component logic; the standard pattern for backing HTL components
OSGi Configuration — Using .cfg.json files scoped by run mode (config.author, config.publish.prod, etc.); inline, environment-specific, and secret variable patterns
Content Package Structure — Immutable vs. mutable content, why install hooks are not supported, and how Cloud Manager transforms packages to the Sling Feature Model at deploy time
Core Components — Adobe's extensible, production-ready component library and the recommended base for custom component development
Deployment & Environments
Deploying to AEM as a Cloud Service — How Cloud Manager pipelines work, the relationship between custom code releases and AEM version updates, and the immutable code-in-git requirement
Rapid Development Environments (RDE) — Using the aio aem:rde:install CLI to push OSGi bundles, configs, dispatcher zips, and content packages directly to an RDE without running a full pipeline
Cloud Manager CI/CD Pipelines — Full and config-only pipeline types, code quality gates, and the relationship between stage and production deployments
Environment Variables & Secrets — Setting environment-specific and secret values via Cloud Manager that get injected into OSGi configurations at runtime
Content & APIs
Content Fragments & Models API — OpenAPIs for full CRUD operations on Content Fragments and Models, with per-language code samples for headless integration scenarios
AEM Headless Developer Portal — GraphQL API, Content Fragment models, persisted queries, and delivery patterns for headless AEM implementations
Universal Editor Integration — Adding data- attributes to existing web app markup to enable in-context visual editing without requiring AEM-hosted rendering
Web-Optimized Image Delivery APIs — Using the AssetDelivery OSGi service to serve WEBP renditions from AEM as a Cloud Service while gracefully falling back on the local SDK
Dispatcher & CDN
Dispatcher in the Cloud — How Dispatcher runs in AEM as a Cloud Service: managed via Cloud Manager, all config in Git, and validation via the Dispatcher SDK before deployment
CDN Configuration — Adobe-managed CDN setup, BYO CDN configuration, cache invalidation behavior, and response header rules
Dispatcher Cache Rules & Invalidation — Configuring what gets cached at the Dispatcher and CDN layers, TTLs, and how publish replication triggers invalidation
Debugging & Operations
Developer Console — Read-only OSGi web console equivalent for cloud environments: inspect bundles, components, Sling Models, oak indexes, and query performance per pod
Log Access via Cloud Manager — Downloading or tailing author, publish, and dispatcher logs per environment via Cloud Manager UI or the Adobe I/O CLI
Repository Initialization (RepoInit) — Declaring service users, ACLs, and initial JCR paths via OSGi factory configuration scripts that run at deploy time