Clusterify.AI

Adobe Commerce Cloud ECE2 Architecture Specification

Magento 2 & Adobe Commerce Cloud (ECE2) AI ChatBot & Assistant Compatibility

A deep technical breakdown for Solution Architects, CTOs, and Lead Developers evaluating Adobe Commerce Cloud (ECE / ECE2) compatibility. Learn how the Clusterify.AI extension integrates natively with Content Staging, Fastly CDN, MSI stock channels, and immutable cloud environments.

Executive Compatibility Matrix

The extension has been rigorously tested against Adobe Commerce on Cloud (ECE) and on-premise Enterprise editions. All subsystems comply strictly with Magento architectural invariants.

Content Staging & row_id

100% Compatible

Official Repositories & DataPatch APIs resolve MetadataPool versioning automatically without raw SQL row_id conflicts.

Multi-Source Inventory (MSI)

100% Compatible

Delegates to IsProductSalableInterface to evaluate true channel availability; purges out-of-stock URLs automatically.

Cloud Read-Only Filesystem (ECE)

100% Compliant

Zero runtime code or file generation. Compiles in build phase (setup:di:compile); database-backed configuration.

Managed RabbitMQ on Cloud

100% Compliant

Uses standard connection='amqp', automatically routing to Cloud's provisioned high-availability RabbitMQ cluster.

Fastly CDN & Full Page Cache (FPC)

100% Compliant

Storefront block is fully cacheable (cacheable='true'). Asynchronous deferred script preserves 100% edge hit rates.

Split Database Architecture

100% Compliant

Declares resource='default' in db_schema.xml, ensuring clean routing to the primary catalog/core database.

Customer Segments

100% Compliant

Visibility evaluated dynamically via fullActionName, completely independent of private customer segment rules.

Content Staging & row_id Architecture (Magento_Staging)

In Adobe Commerce, the Magento_Staging module replaces the single primary key entity_id with a versioned row_id for scheduling campaigns across Products, Categories, and CMS pages.

Repository Version Resolution

Data providers load entities strictly through official Magento repositories (Product, Category, and CMS Page repositories). These are intercepted by Adobe Commerce Staging plugins, resolving the active staged version via MetadataPool.

Dual-Layer Change Tracking

To prevent MySQL trigger compilation errors on Adobe Commerce Staging (where EAV tables link via row_id), Mview subscribes strictly to base entity tables and pairs with save-commit observers and action plugins.

Multi-Source Inventory (MSI) & Stock Availability

Adobe Commerce and Cloud almost universally run with Multi-Source Inventory enabled (Magento_Inventory*), where warehouses and retail locations are aggregated into custom Stocks assigned to specific Website channels.

Composite Salable Resolver: Inspects $product->isSalable(), which automatically delegates to IsProductSalableInterface, evaluating true availability against the website's assigned stock channel.
Out-of-Stock Quota Optimization: When sync_in_stock_only = 1 is enabled, out-of-stock items trigger automatic bulk deletion in the background, purging unavailable products to preserve URL quotas.

Cloud Read-Only Filesystem (ECE) & Fastly CDN

Adobe Commerce on Cloud enforces an immutable, read-only filesystem at runtime. Only /var, /tmp, and /pub are writable.

Immutable Build Compliance

Zero runtime code or proxy generation. All dependency injection compilation occurs during the Cloud build hook (setup:di:compile). Configuration is stored in core_config_data, and plan caching routes to Redis/Valkey.

Fastly CDN Cache Hit Rates

The storefront snippet block in layout XML does not disable full page cache. The widget bundle loads asynchronously after page load, maintaining 100% Fastly edge cache hits.

# .magento.app.yaml — Cloud Deployment Hooks
hooks:
  build: |
    set -e
    php ./bin/magento setup:di:compile
  deploy: |
    set -e
    php ./bin/magento setup:upgrade --keep-generated
    php ./bin/magento cache:flush
Cloud Architecture FAQ

Frequently Asked Questions: Adobe Commerce Cloud (ECE2)

Common technical questions regarding Content Staging, Fastly caching, MSI, and Cloud infrastructure.

How does the extension handle Adobe Commerce Content Staging without MySQL trigger errors?
In Adobe Commerce, staging replaces entity_id with row_id across EAV value tables. To prevent trigger compilation failures (Unknown column 'entity_id' in 'NEW'), our mview.xml subscribes strictly to base entity tables and pairs with save-commit observers and action plugins.
How is active staged campaign versioning resolved during catalog synchronization?
Entity data providers load items through official Magento repository interfaces (ProductRepositoryInterface::getById, CategoryRepositoryInterface::get, PageRepositoryInterface::getById). These are intercepted by Adobe Commerce Staging plugins, resolving the active staged version via MetadataPool. Learn more about our sync architecture.
Is the ChatBot widget 100% cacheable on Fastly CDN and Full Page Cache (FPC)?
Yes. The layout block in view/frontend/layout/default.xml does not declare cacheable="false". The widget bundle loads asynchronously after initial page delivery, guaranteeing 100% Fastly CDN and Varnish edge cache hit rates with zero TTFB degradation.
How does Multi-Source Inventory (MSI) evaluate stock availability across custom sales channels?
The extension inspects $product->isSalable(), which automatically delegates to MSI's IsProductSalableInterface. This resolves real-time stock against the website's assigned inventory stock channel rather than isolated legacy physical source rows. Configure stock sync options in our Admin Operations Guide.
What happens when 'Sync In-Stock Products Only' is enabled on Adobe Commerce?
When active, any product evaluated as out of stock emits a deletion action via $client->knowledgeUrl()->bulkDelete(). Unavailable products are automatically purged from Clusterify.AI, conserving your URL quota for active, purchasable items. See sync triggers in the Admin Guide.
How does the module comply with Cloud ECE's strict read-only runtime filesystem?
Adobe Commerce Cloud prohibits file creation under /app, /vendor, and /generated at runtime. The extension strictly compiles during the Cloud build hook (setup:di:compile), stores settings in core_config_data, and delegates runtime caching to Redis/Valkey.
Does the extension support Adobe Commerce split database architecture?
Yes. The declarative schema (etc/db_schema.xml) declares resource="default", ensuring all database tables and schema modifications route directly to the primary catalog/core database without connection router conflicts.
How does the extension connect to Cloud's managed RabbitMQ clusters?
All AMQP topologies (etc/queue_topology.xml) and queue consumers declare standard connection="amqp". On Adobe Commerce on Cloud, this routes directly into Cloud's provisioned RabbitMQ cluster without custom connection bridges. Learn more about RabbitMQ sync architecture.
What deployment hooks are required in .magento.app.yaml?
Standard Cloud hooks apply: run php ./bin/magento setup:di:compile during the build phase, and php ./bin/magento setup:upgrade --keep-generated and cache:flush during the deploy phase. Automate this via our CLI Developer Docs.
Are private customer segments or dynamic blocks affected by the ChatBot?
No. ChatBot visibility is evaluated dynamically by request layout handle (fullActionName) rather than private customer segment rules. It operates completely independently of customer session segmentation, ensuring zero session locks. Configure visibility under Page Visibility Settings.