Services

Adobe Commerce development
Storefront design
Upgrades, migration & support
Performance & SEO
AI & agentic commerce
Custom application development
Book a free audit call

Ecommerce Architecture: A Reference Diagram for Adobe Commerce

Reference architecture: Development & integrations guide from Mistri
Loading...
Ecommerce Architecture: A Reference Diagram for Adobe Commerce

Ecommerce architecture is the set of layers that turn a shopper's request into a page, a cart and an order, and the systems that feed and consume that data. On Adobe Commerce, a sound reference architecture has seven layers: edge and CDN, storefront, APIs, the commerce core with its database, search, cache and queues, integrations (ERP, PIM, payments, tax), and data and analytics. The value of drawing it is less about the boxes and more about agreeing who owns each layer, what it depends on, and what happens when it fails.

The reference diagram

This is a simplified view of a typical Adobe Commerce setup. Not every store needs every box, but every store has to decide who owns each one.

Shopper / AI agent / mobile app
              |
[ Edge: CDN, WAF, bot management, image optimization ]
              |
[ Storefront: Luma or Hyvä theme | headless front end | Edge Delivery storefront ]
              |
[ API layer: GraphQL, REST, API Mesh ]
              |
[ Commerce core: PHP application, admin, cron, consumers ]
    |            |              |              |
[ MySQL ]  [ OpenSearch ]  [ Varnish + Valkey ]  [ RabbitMQ ]
              |
[ Integrations: ERP, PIM, OMS/WMS, payments, tax, CRM, App Builder ]
              |
[ Data: analytics, warehouse, CDP, monitoring and logs ]

Layer by layer, with ownership notes

LayerTypical components on Adobe CommerceUsually owned byKey decision
EdgeCDN, web application firewall, bot rules, image optimizationHosting provider or Adobe on cloud; your team configures rulesWhat gets cached at the edge, and how bots and AI crawlers are treated
StorefrontLuma or Hyvä theme, a headless front end (for example Next.js), or Adobe Commerce Storefront on Edge Delivery ServicesFront-end team or agencyCoupled theme vs headless; this choice drives most other costs
API layerGraphQL and REST APIs, API Mesh to combine sourcesBackend teamWhich data the storefront reads from Commerce vs other systems
Commerce corePHP application, admin, cron jobs, message queue consumers, custom modulesBackend team; Adobe patches the platform, you apply them (except on Adobe Commerce as a Cloud Service)Which logic lives in modules vs out-of-process services
DatabaseMySQL or MariaDB, often with a read replicaHosting or opsBackups, replicas for reporting, upgrade path
SearchOpenSearch, or Live Search as a SaaS serviceOps for OpenSearch; Adobe for Live SearchSelf-managed relevance vs SaaS merchandising
CacheVarnish full page cache; Valkey (or Redis) for application cache and sessionsOps and backend togetherCache hit rate targets and what invalidates pages
QueueRabbitMQ (or ActiveMQ Artemis) for asynchronous workOps and backendWhich operations run async: exports, bulk updates, integrations
IntegrationsERP, PIM, OMS or WMS, payment gateway, tax engine, CRM, App Builder appsIntegration team; each external system has its own ownerWhich system is master for products, prices, stock, customers and orders
DataWeb analytics, data warehouse, CDP, APM and loggingData or marketing team; ops for monitoringSingle definition of revenue and orders across tools

The commerce core and its services

For on-premises and cloud infrastructure deployments, Adobe publishes exact supported versions for each release. For Adobe Commerce 2.4.9, the on-premises requirements include PHP 8.5, MySQL 8.4 or MariaDB 12.3, OpenSearch 3, Valkey 9, RabbitMQ 4.3 (or ActiveMQ Artemis 2), Varnish 8, nginx 1.30 and Composer 2.10. Treat those as a set: upgrading Commerce usually means upgrading the services around it too, which is why upgrades should be planned as infrastructure projects.

Two parts of the core are easy to forget on a diagram and cause most production surprises: cron (indexers, emails, scheduled imports) and queue consumers (asynchronous operations). If either stops, the store looks fine while prices, stock and emails quietly go stale. Give them explicit monitoring.

Caching: the layer that decides performance

Most page requests on a healthy store never reach PHP. The CDN and Varnish serve cached pages, and personal data such as the mini-cart loads separately in the browser. When that design breaks, for example because a custom block makes pages uncacheable, every request hits the application and the database, and the store slows under load. Our explainer on Magento caching walks through each cache and how invalidation works.

Three architecture patterns

PatternWhat changesFitsTrade-off
Coupled (monolith with theme)Commerce renders pages with Luma or HyväMost stores; smaller teamsSimplest to run; front end tied to the Commerce release cycle
HeadlessA separate front end calls GraphQL; Commerce becomes a backendContent-heavy brands, multiple front ends, teams with strong JavaScript skillsMore flexibility; two applications to host, secure and keep in sync
ComposableCommerce is one service among several (search, CMS, OMS, pricing), joined through APIs and API MeshLarge organizations with existing best-of-breed systemsMaximum choice; integration and ownership become the main cost

Our guide to composable commerce explains when that last pattern pays off, and our guide to API Mesh for Adobe Commerce covers how Adobe's API Mesh combines several APIs into one GraphQL endpoint for a headless front end.

Integration principles that keep the diagram honest

  • One master per data type. Write down which system owns products, prices, stock, customers and orders. Most integration bugs are two systems both believing they are the master.
  • Async by default. Use the message queue or an integration layer for anything that can wait, so a slow ERP does not slow checkout.
  • Out-of-process where it helps. Adobe's App Builder lets you run integration logic outside the Commerce application, which keeps the core lighter and upgrades simpler.
  • Idempotent and replayable. Every integration should handle duplicate and late messages and be able to resend from a point in time.
  • Observable. Each integration needs a dashboard or alert showing lag and errors, owned by a named person.

Ownership depends on the deployment model

The same diagram has different owners depending on how Adobe Commerce is deployed. On-premises, your team or hosting provider owns every box. On Adobe's cloud infrastructure, Adobe runs the underlying services and you own the application code, configuration and deployments. With Adobe Commerce as a Cloud Service, Adobe also hosts the application and applies feature and security updates automatically after a sandbox review period, and customization moves to extensions built outside the core, APIs and App Builder. Confirm the split for your edition and contract, because it decides who gets the call at 3 a.m.

Using the diagram

  1. Draw your current state with real product names and versions.
  2. Mark the owner, the monitoring and the failure impact of each box.
  3. Mark the master system for each data type.
  4. Highlight the boxes with no owner or no monitoring; that is your risk list.
  5. Draw the target state only after the current state is agreed.

Mistri uses this kind of diagram as the starting point for headless Adobe Commerce projects and for wider Adobe Commerce development work, because it makes trade-offs visible before anyone writes code.

Sources

System requirements (Adobe Experience League); Page caching (Adobe Commerce developer documentation); Message queues (Adobe Commerce developer documentation); Adobe Commerce GraphQL API (Adobe developer documentation); Adobe Commerce as a Cloud Service overview (Adobe Experience League).