Catalog Syndication Architecture
This section provides details about the catalog syndication architecture and describes the end-to-end data flow, showing how catalog synchronization is initiated and sent to a Content Management System (CMS).
Architecture and Data Flow
Administrators use Syndication API for catalog synchronization. Syndication consumer receives event messages from Java Messaging Service (JMS) and fetches the changes using Syndication API and the data received in the catalog event message. The following diagram illustrates the data flow for:
- Domain event channel messaging (shown in red)
- Batch projection builder (shown in green)
Domain Event Messaging Data Flow
- Store administrator updates the store catalog in Elastic Path Commerce Manager.
- Elastic Path Commerce sends a message to the Domain Event Channel to notify the change.
- Integration server consumes the message from the Domain Event Channel and runs an appropriate action.
- Integration server builds the projection and saves it to the Elastic Path Commerce database. Integration server sends the catalog event message to Catalog Event Channel.
- Syndication consumer processes the catalog event message from the
VirtualTopic.ep.catalog
topic in JMS consisting of a Global Unique Identifier (GUID). The GUID is used to fetch data using Syndication API. - CMS fetches the latest catalog representation using Syndication API and the GUID.
Batch Projection Builder Data Flow
- CMS administrator initiate a batch projection builder job in the batch integration server.
- Elastic Path batch server builds projections for all entities of a certain type, such as brand, SKUs, or attributes
- Batch projection builder sends the message to Catalog Event Channel.
- CMS consumes the catalog event message from the
VirtualTopic.ep.catalog
topic in JMS consisting of a Global Unique Identifier (GUID). The GUID is used to fetch data using Syndication API. - Syndication consumer fetches the latest catalog representation using Syndication API and the GUID.
Catalog Syndication Data Model
This section provides details of the catalog syndication data model and the type of data available for synchronization and consumption.
Data model
With an update to the catalog through Elastic Path Commerce Manager or tools, such as Import Export, Data Population, or Data Sync, domain event messages are sent to Java Messaging Service (JMS). The projection builder consumes the event messages, builds the corresponding projections and sends catalog event messages to JMS. Syndication consumers can subscribe to catalog event messages to be notified changes or can periodically check syndication API. The following diagram illustrates the basic data model for projections, with category and offer projections partially flattened or denormalized, to simplify consumption:
Catalog Projections
When you create, edit, or delete an entity, the following projections are created for the corresponding catalog entity:
- Category: Organizes products within a catalog or within another category
- Offer: Represents any tangible or non-tangible collection of items for sale in a store
- Attribute: Represents a trait or characteristic of an offer, item or category
- Brand: Represents the brand to which an offer is associated
- Option: Represents values to distinguish between items in an offer, such as color and size
- Field metadata: Represents metadata used to describe fields that are required when adding an item to the cart
- Price: Represents the cost of any tangible or non-tangible collection of items for sale in a store