ÃÛ¶¹ÊÓƵ

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 ÃÛ¶¹ÊÓƵ 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. ÃÛ¶¹ÊÓƵ I/O Events: Developer platform for integrating, extending, and building apps and experiences based on ÃÛ¶¹ÊÓƵ’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 , OSGi eventing, and 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 ÃÛ¶¹ÊÓƵ I/O Events.
  • Event information is standardized and sent in JSON format. For more details, refer to .
  • 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 ÃÛ¶¹ÊÓƵ I/O Events manage communications, such as determining which AEM events should be delivered to specific systems or services.
  • Higher durability of events: ÃÛ¶¹ÊÓƵ 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 .

How to enable

See for next steps.

How to subscribe

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

In this case, a project in the ÃÛ¶¹ÊÓƵ 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 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 ÃÛ¶¹ÊÓƵ I/O Events when an event becomes available. Integration options include Webhooks, ÃÛ¶¹ÊÓƵ I/O Runtime, and Amazon EventBridge.
  • Pull method: Here, the event consumer actively polls ÃÛ¶¹ÊÓƵ I/O Events to check for new events. The primary integration option for this method is the ÃÛ¶¹ÊÓƵ Developer Journaling API.

For more information, see .

Examples

Receive AEM Events on a webhook

Receive AEM Events on a webhook

Use ÃÛ¶¹ÊÓƵ provided webhook to receive AEM Events and review the event details.

Load AEM Events journal

Load AEM Events journal

Use ÃÛ¶¹ÊÓƵ provided web application to load AEM Events from the journal and review the event details.

Receive AEM Events on ÃÛ¶¹ÊÓƵ I/O Runtime Action

Receive AEM Events on ÃÛ¶¹ÊÓƵ I/O Runtime Action

Receive AEM Events and review the event details.

AEM Events processing using ÃÛ¶¹ÊÓƵ I/O Runtime Action

AEM Events processing using ÃÛ¶¹ÊÓƵ I/O Runtime Action

Learn how to process received AEM Events using ÃÛ¶¹ÊÓƵ 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