AEM Eventing

Learn about AEM eventing, what it is, why and when to use it and examples of it.

What it is

AEM Eventing is a cloud-native eventing system that enables subscriptions to AEM Events for processing in external systems. An AEM Event is a state change notification sent by AEM whenever a specific action occurs. For example, this can include events when a content fragment is created, updated, or deleted.

AEM Eventing

The above diagram visualized how AEM as a Cloud Service produces events and sends them to the Adobe I/O Events, which in turn exposes them to event subscribers.

In summary there are three main components:

  1. Event provider: AEM as a Cloud Service.
  2. Adobe I/O Events: Developer platform for integrating, extending, and building apps and experiences based on Adobe’s products and technologies.
  3. Event consumer: Systems owned by the customer that subscribe to the AEM Events. For example, a CRM (Customer Relationship Management), PIM(Product Information Management), OMS (Order Management System), or a custom application.

How is it different

The Apache Sling eventing, OSGi eventing, and JCR observation all offer mechanisms to subscribe to and process events. However, these are distinct from the AEM Eventing as discussed in this documentation.

Key distinctions of AEM Eventing include:

  • The event consumer code is executed outside of AEM, not running in the same JVM as AEM.
  • AEM product code is responsible for defining the events and sending them to Adobe I/O Events.
  • Event information is standardized and sent in JSON format. For more details, refer to cloudevents.
  • To communicate back to AEM, the event consumer uses the AEM as a Cloud Service API.

Why and when to use it

AEM Eventing offers numerous advantages for system architecture and operational efficiency. Key reasons to use AEM Eventing include:

  • To build event-driven Architectures: Facilitates the creation of loosely coupled systems that can scale independently and are resilient to failures.
  • Low code and lower operational costs: Avoids customizations in AEM, leading to systems that are easier to maintain and extend, thus reducing operational expenses.
  • Simplify communication between AEM and external systems: Eliminates point-to-point connections by letting Adobe I/O Events manage communications, such as determining which AEM events should be delivered to specific systems or services.
  • Higher durability of events: Adobe I/O Events is a highly available and scalable system, designed to handle large volumes of events and reliably deliver them to subscribers.
  • Parallel processing of events: Enables the delivery of events to multiple subscribers simultaneously, allowing for distributed event processing across various systems.
  • Serverless application development: Supports deploying the event consumer code as a serverless application, further enhancing system flexibility and scalability.

Limitations

AEM Eventing, while powerful, has certain limitations to consider:

  • Availability restricted to AEM as a Cloud Service: Currently, AEM Eventing is exclusively available for AEM as a Cloud Service.

  • Available event types: Review the current list of available event types here.

How to enable

See Enable AEM Events on your AEM Cloud Service Environment for next steps.

How to subscribe

To subscribe to AEM Events, you do not have to write any code in AEM, but rather an Adobe Developer Console project is configured. The Adobe Developer Console is a gateway to Adobe APIs, SDKs, Events, Runtime, and App Builder.

In this case, a project in the Adobe Developer Console enables you to subscribe to events emitted from AEM as a Cloud Service environment and configure the event delivery to external systems.

For more information, see How to subscribe to AEM Events in the Adobe Developer Console.

How to consume

There are two primary methods for consuming AEM Events: the push method and the pull method.

  • Push method: In this approach, the event consumer is proactively notified by Adobe I/O Events when an event becomes available. Integration options include Webhooks, Adobe I/O Runtime, and Amazon EventBridge.
  • Pull method: Here, the event consumer actively polls Adobe I/O Events to check for new events. The primary integration option for this method is the Adobe Developer Journaling API.

For more information, see AEM Events processing via Adobe I/O Events.

Examples

Receive AEM Events on a webhook

Receive AEM Events on a webhook

Use Adobe provided webhook to receive AEM Events and review the event details.

Load AEM Events journal

Load AEM Events journal

Use Adobe provided web application to load AEM Events from the journal and review the event details.

Receive AEM Events on Adobe I/O Runtime Action

Receive AEM Events on Adobe I/O Runtime Action

Receive AEM Events and review the event details.

AEM Events processing using Adobe I/O Runtime Action

AEM Events processing using Adobe I/O Runtime Action

Learn how to process received AEM Events using Adobe I/O Runtime Action. The event processing includes AEM callback, event data persistence, and displaying them in the SPA.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69