What is composable commerce? Definition, architecture and when it pays off

Composable commerce is a way of building a store from independent, API-connected capabilities instead of one all-in-one suite. Whether it pays off depends less on the vendor than on your team, your integrations and how often the business needs to change.

For a CTO or e-commerce lead, the useful questions are what you assemble, what the glue costs and when a monolith or hybrid platform is the better answer.

Composable commerce definition

Composable commerce is a way of building an online store from independent packaged business capabilities (PBCs), such as cart, search, pricing, and order management, that you select, connect through APIs, and replace one at a time.

A PBC is a self-contained unit that owns one business function, its data, and its API, and is typically built to MACH architecture principles: microservices, API-first, cloud-native SaaS, and headless.

Netguru designs and builds headless, API-first and composable commerce platforms on commercetools, VTEX, Saleor, Medusa, SAP Commerce Cloud and Shopify Plus. We recommend extracting one PBC first, such as search, because it proves the integration pattern before checkout is touched. For teams already evaluating an engine, our commercetools development services cover integration with PIM, CMS and order management systems.

What is MACH architecture and how composable commerce works

Composable commerce works by connecting packaged business capabilities through synchronous APIs for anything the shopper waits on and through events for everything else.

MACH architecture gives each capability its own API and release cycle. A stack might pair a commerce engine such as commercetools or Medusa with a PIM (Pimcore, Akeneo, inRiver), search (Algolia, Elasticsearch), payments (Stripe, Adyen, PayPal) and BNPL (Klarna, Affirm).

A headless frontend and an API orchestration layer, usually a BFF or gateway, combine those services into one response for the storefront.

Choosing which capabilities to buy, build or connect is rarely trivial, which is where commerce architecture consulting can help teams map the right stack before committing to vendors.

The design decision is which calls block the shopper and which do not:

Interaction Style Reason
Price at cart and checkout Synchronous A stale price means charging the wrong amount
Stock check and reservation at checkout Synchronous The reservation must succeed or fail inside the request, or you oversell
Payment authorization Synchronous The confirmation page depends on the outcome
PIM to commerce engine and search index sync Event-driven Bulk updates tolerate minutes of lag and can be retried
Order status changes from the order management system Event-driven Email, CRM and storefront all consume the same change

Our recommendation: keep a call synchronous only when the shopper cannot proceed without the answer, or when a wrong answer costs money. Put everything else on the event bus.

Event-driven integration means eventual consistency. Make consumers idempotent, tolerate out-of-order delivery, and let listing pages read cached prices while cart and checkout re-validate against the commerce engine.

Keep the synchronous chain in the orchestration layer short. Set a timeout budget per upstream call and add circuit breakers with a defined fallback, such as hiding recommendations when that service is slow.

This pattern has a limit. With two or three services, webhooks are usually enough and a full event bus adds operating cost. Teams designing the integration layer can start from our API-first commerce services.

What does composable commerce architecture look like?

Composable commerce architecture stacks four layers: a headless frontend, an API orchestration layer, packaged business capabilities, and an event bus that carries state changes between them.

Stack diagram of composable commerce architecture, top to bottom: a headless frontend, an API orchestration layer, packaged business capabilities, and an event bus that carries state changes between the layers.

  1. Headless frontend: a storefront, app or kiosk that talks only to its own backend-for-frontend.
  2. API orchestration layer: one BFF per channel behind an API gateway, handling auth, caching and aggregation.
  3. Packaged business capabilities: a commerce engine (commercetools, Saleor, Medusa), product information management, an order management system, search and payments, each owning its data.
  4. Event bus: event-driven integration that publishes facts such as product.updated, stock.changed and order.placed.

The layers are easy to draw. Two failure modes appear once traffic arrives, and both can be caught early.

Failure mode Typical cause Early sign
Checkout fan-out The BFF calls cart, pricing, inventory, tax and payments one after another Tracing shows sequential spans; p95 checkout latency follows the slowest dependency
State drift PIM, engine and OMS each keep their own copy of price, stock or order status Cart price differs from product page price; dead-letter queue and consumer lag grow

Checkout fan-out

Assume five sequential synchronous calls at 200 ms each and 99.9% availability per service. Checkout then costs one second of backend time before rendering and succeeds about 99.5% of the time (0.999^5). These figures are illustrative assumptions, and the compounding is the point.

Call independent services in parallel and keep only payment authorization and final order creation in the synchronous path. Move price and tax calculation into the commerce engine's cart, and send everything else to the event bus.

State drift

Event-driven integration gives eventual consistency, so drift is expected. It becomes a defect when no one owns the field. We recommend one system of record per attribute: the PIM owns descriptions and attributes, the engine owns price, and the OMS owns stock and order state.

Consumers should be idempotent and process versioned events. Add a nightly reconciliation job that diffs the three systems and alerts on any mismatch rate you have set as a threshold.

Track three signals from the first release: trace depth on checkout, consumer lag per topic, and the reconciliation mismatch count. A fast-growing mismatch count usually points to a missed event or an unclear owner.

If you are designing these seams now, our API-first commerce service starts with the checkout call graph and data ownership map.

Composable vs headless commerce: Which to choose?

Choose headless commerce when one engine and one team own the stack; choose composable commerce when two or more domains need independent swap or scaling.

A headless frontend is the first step of both paths, so the real decision is how far behind it you split the backend. The headless commerce guide covers the frontend side in depth.

If you decide to go headless and need outside help with the build, this list of headless commerce agencies can help you shortlist vendors.

The two models side by side:

Headless Composable
Scope Decouples the storefront from one commerce engine Splits the backend into packaged business capabilities: catalog, cart, checkout, OMS, PIM, search, payments
Flexibility Frontend changes freely; swapping the engine means a replatform Each capability can be replaced or scaled on its own cycle
Vendor model One engine (for example Shopify Plus or SAP Commerce Cloud) plus a custom frontend Several vendors, for example commercetools for the commerce engine with separate search, PIM and payment providers

Headless is the better fit when:

  • The engine's native catalog, pricing, promotions and checkout cover your requirements.
  • One team owns the backend and the release cadence.
  • The pain is storefront performance, design freedom or adding channels.

Composable is the better fit when:

  • A PIM must feed several channels or markets with its own data model.
  • The OMS or search needs replacing or scaling independently of checkout.
  • Separate teams need separate release cycles for separate domains.

Composable adds integration work: contract tests between services, event handling and eventual consistency. Our judgement is that a team without capacity to own that layer should stay headless, because each extra vendor adds a failure point that someone must monitor.

Headless is also a sound first move on the composable path. Keep the headless frontend and its BFF, then use the strangler fig pattern to extract one capability at a time, starting with whichever domain hurts most.

Netguru builds both models, so the rule above follows your domain boundaries, not a preferred engagement type. For the build side, see our headless commerce development and API-first commerce services.

Composable vs monolithic commerce at a glance

Composable vs monolithic commerce is a spectrum, and Shopify Plus, SAP Commerce Cloud and VTEX sit in the middle as hybrids that expose APIs and support headless frontends but keep one commerce core.

Full MACH architecture sits at the far end, where every capability runs as its own service.

The three positions side by side:

Monolith Hybrid Composable (MACH architecture)
Examples Self-hosted Magento with plugins Shopify Plus, SAP Commerce Cloud, VTEX commercetools or Medusa, plus a separate PIM, search and payments
Commerce core One codebase, one database One core with APIs and extension points Independent services behind APIs
Release unit Whole platform Frontend independent, core follows vendor releases Per service
Main cost Coupled upgrades Limits on core logic Integration and orchestration you own

The hybrid failure case is coupling two monoliths, such as Magento with Pimcore. Keeping both synchronized costs time and money on every update and security patch. When something breaks, the team first has to work out which system is at fault, which slows every fix.

The composable alternative integrates separate services over APIs: a commerce engine, a PIM such as Pimcore, Akeneo or inRiver, search such as Algolia or Elasticsearch, and payment gateways such as Stripe, Adyen or PayPal. Netguru builds at all three positions. The full trade-off analysis is in our composable vs monolith architecture comparison.

How to build a composable commerce stack: Which components to pick

Any packaged business capability can run as its own component. The usual candidates are the commerce engine, CMS, product information management (PIM), order management system (OMS), search and payments. The engine is the hub: commercetools, Saleor or Medusa can fill that role.

Hub-and-spoke diagram with the commerce engine as the hub, surrounded by five components: PIM, CMS, OMS, search and payments. The CMS has no sync with the engine; the frontend or BFF joins its content to products.

The sample stack below is an illustrative assumption for a mid-market retailer, not a recommendation. For each pair, the table lists the integration it needs, who owns it, and an early sign that the link is failing.

Pair Example products Integration Owner Early sign of failure
Engine and PIM commercetools or Medusa; Akeneo, Pimcore or inRiver PIM pushes enriched product data into the engine catalog through API import or update events Merchandising team for data, backend team for the sync job Product counts in PIM and engine drift apart
Engine and CMS Contentful or Strapi (Storyblok is another option) No sync. The frontend or BFF joins editorial content to products by SKU or slug Frontend team Pages render empty product cards after a slug change
Engine and OMS Any OMS with an order API Engine emits order-created events; OMS returns fulfillment status and stock levels Operations lead for rules, integration engineer for the event flow Orders sit in "created" with no fulfillment status
Engine and search Algolia or Elasticsearch Catalog change events trigger index updates; search returns IDs the frontend resolves Platform team Indexed record count differs from catalog count
Engine and payments Stripe, Adyen or PayPal; Klarna or Affirm for BNPL Payment API call from checkout, with webhooks confirming the result Backend team, with finance and security for PCI scope Customers are charged but orders are never confirmed

The OMS and search pairs run on events, so plan for eventual consistency. A product can briefly appear in search after the engine has already marked it unavailable, and the frontend needs a fallback for that gap.

Every pair needs one named owner. When a PIM sync breaks and the pair is unowned, merchandising blames engineering and engineering blames the vendor. Record the owner and the failure signs above in the API orchestration layer runbook, next to the retry and alerting rules.

When to split a capability out

Split a capability into its own component when all three conditions hold:

  • The engine's built-in version blocks a requirement you have.
  • A team exists that can run the replacement.
  • You can name the owner of the new integration.

If any condition fails, keep the capability inside the engine.

Under that rule, a smaller team could start with the engine, PIM and search, and keep the CMS and OMS inside the engine until they outgrow them. How a PIM fits is worth settling first, because it feeds every other component.

For vendors and agencies that deliver stacks like this, see our list of composable commerce companies.

Benefits of composable commerce, and the caveat to each

Each benefit of composable commerce holds only under a specific condition, and that condition is usually where projects overspend. Gartner, which introduced packaged business capabilities as the unit of composition, forecast in 2020 that by 2023 organizations adopting a composable approach would outpace competitors by 80% in the speed of new feature implementation. That was a forecast, not a measured result.

That claim assumes the contracts between capabilities stay stable. The trade-offs side by side:

Benefit Condition it depends on
Swappable packaged business capabilities Stable contracts: an orchestration layer or canonical product and order model, so replacing the PIM does not mean rewriting every consumer
Freedom in the headless frontend Preview, draft states and page composition built in from the first sprint. Preview bolted on late breaks editor workflows
Faster pages A BFF that aggregates calls, plus caching. Without them, one page fans out into many API round trips
Omnichannel consistency One source of truth per entity and a plan for eventual consistency in inventory and order status
Business-user control Governance in the PIM and CMS, with guardrails and training for editors
Independent team releases Contract tests, shared observability and someone who owns vendor management

The last row is the cost side of every other row. Six vendors mean six SLAs, six upgrade cycles and six places for an incident to start, and a team of ten engineers may not absorb that.

We recommend choosing the two benefits your roadmap depends on and funding their conditions first. A retailer that needs weekly merchandising changes should pay for CMS preview and PIM governance before it pays for a third swappable component. Change speed is the benefit most teams buy for.

Is composable commerce worth it? A readiness scorecard

Composable commerce is worth it when you run several storefronts, have a team that can own integrations, and have outgrown your platform's roadmap. Below those thresholds, a monolith or hybrid platform usually costs less to run.

Score your situation against the table below. The thresholds are our own illustrative judgement, not industry benchmarks.

Factor Composable fits Monolith or hybrid wins
Engineering capacity 15+ engineers, at least two squads able to own services Fewer than about 8 engineers, one team
Storefronts and markets 3+ brands, regions or channels with different catalogs and pricing 1-2 storefronts on standard checkout
Integration maturity Event bus or API gateway in production, contract tests, a named owner for the API orchestration layer Point-to-point ERP links, no on-call rota for integrations
Back-office complexity Order management system or PIM needs the platform can't meet (multi-warehouse, split shipments, B2B pricing) Native order and catalog handling covers the process
Release cadence Weekly frontend or merchandising changes blocked by platform releases Quarterly releases are acceptable

Five rows in the left column justify a phased migration, using the strangler fig pattern. Three or four point to a hybrid: keep a platform such as Shopify Plus, add a headless frontend, and swap out one component, usually search or PIM. Two or fewer means staying put.

Unclear cross-vendor incident ownership is a stop sign whatever the score. If checkout fails while the commerce engine, payment provider and orchestration layer each show green on their own status pages, one party in your organization must own diagnosis end to end.

MACH Alliance membership speaks to architectural principles, so it does not tell you who gets paged. Settle that in contracts and runbooks before launch.

The team-size row bends if a delivery partner operates the stack for you. In that case, test the partner's on-call model instead of your headcount.

What does composable commerce cost, and where are the hidden costs?

Composable commerce shifts cost from license fees to integration, observability, and ownership, so the total depends on how many vendors you connect and who carries the pager.

A commerce engine such as commercetools is one contract. Search, PIM, OMS, payments, and a headless frontend each add another, and each brings its own pricing model, release cycle, and security review. The license is the visible part of the budget. The rest shows up as engineering time.

The cost drivers side by side:

Cost driver What you pay for Early warning sign
Integration build Data mapping, retries, idempotency, and schema versioning across vendors Estimates cover each connector but not the orchestration between them
Observability Distributed tracing and alerting that span several vendors Nobody can say which system failed without opening four dashboards
Multi-vendor contracts Separate renewals, SLAs, and security reviews Renewal dates are tracked in a spreadsheet
On-call ownership Engineers who own the glue code; vendor SLAs stop at their own API One person understands the event flows
Integration sprawl Point-to-point connections added to fix gaps Every new feature touches three systems

The integration layer is the largest recurring line. Each vendor ships updates and security patches on its own schedule, so the API orchestration layer and the event-driven integration behind it need contract tests, versioned schemas, and a named owner. Plan for the salaries of skilled engineers who run that layer, not only the build hours.

Coupling two monoliths carries the same overhead. A Magento and Pimcore pair has to stay synchronized through every update, and troubleshooting starts with working out which system is at fault. Composable multiplies that across a commerce engine, a PIM, a search engine such as Algolia, payment gateways such as Stripe or Adyen, and BNPL modules such as Klarna.

This cost shape applies less when you run a single storefront or lack a platform team. A hybrid platform such as Shopify Plus keeps more of the integrations on the vendor's side. We suggest estimating TCO by counting integrations and on-call rotations first, then comparing license quotes.

How to migrate from a monolith to composable commerce

Migrate from a monolith to composable commerce with the strangler fig pattern: put a routing layer in front, then extract search, content, product information management, and checkout, in that order. Each step follows Martin Fowler's strangler fig pattern, so the monolith keeps serving until the replacement proves itself.

Pipeline diagram of the strangler fig migration from a monolith to composable commerce. A routing layer comes first, then search, content, product information management and checkout are extracted in order of increasing blast radius.

Start with the routing layer. An API gateway or edge router decides per route which system answers, and a headless frontend or BFF renders the pages you migrate first. Design this layer and your event contracts before extracting anything. Our API-first commerce and headless commerce development services begin here.

The extraction order, from lowest to highest blast radius:

  1. Search (Algolia or Elasticsearch). Search is read-only. Feed it from the monolith's catalog export, mirror live queries to both engines, and compare zero-result rate and click-through. Rollback is a feature flag.
  2. Content (Contentful, Storyblok, or Strapi). Move editorial and landing pages route by route. Rollback is a route change at the gateway.
  3. Product information management (Pimcore, Akeneo, or inRiver). Make the PIM the source of truth and sync one way to the monolith and the new commerce engine. Run a nightly reconciliation job to catch drift, because eventual consistency will show up as stale prices or attributes. The monolith keeps its own copy until cutover.
  4. Checkout (commercetools or Medusa, with Stripe or Adyen). Checkout carries orders, tax, and payments, so move it last. Send a small cohort of new carts to the new engine, use idempotency keys on payment calls, and let in-flight carts finish where they started. Rollback routes new carts back to the monolith.

This order is our recommendation, not a standard. Reverse it when checkout conversion is the pain that justifies the project. Skip a separate PIM for a small catalog the commerce engine handles natively.

After checkout, the order management system is the next candidate, and the monolith can then be retired.

B2B composable commerce: When it fits

B2B commerce fits composable when quoting, account hierarchies and ERP-driven pricing exceed what a suite can configure. In that case, an order management system and an API orchestration layer let you model negotiated-sales logic once and reuse it across portals, sales-rep tools and marketplaces.

Our rule of thumb is to go composable when at least two of these hold:

  • Quoting: multi-round quotes, approval chains or configure-to-order products that the suite handles only through custom code.
  • Account hierarchies: parent-child buyer organizations with per-unit budgets, role-based approvals and contract-specific catalogs.
  • ERP pricing: contract prices, tiered discounts and stock availability live in the ERP and must be read at request time, because a nightly sync produces stale quotes.

In the composable version, the ERP stays the pricing authority. The orchestration layer fetches contract prices on demand, product information management supplies catalog data, and the OMS handles split shipments and backorders. A commerce engine such as commercetools documents business units and quotes as API resources, so you configure them instead of building them.

If you have one price list, flat accounts and standard approvals, the B2B features in a suite or Shopify Plus will ship sooner and cost less to run. Composable adds integration ownership, and that only pays off when your sales process is the differentiator.

Composable commerce FAQ

What is a composable commerce platform?

A composable commerce platform is a commerce engine built to be one component among several: it exposes catalog, cart, pricing and checkout through APIs and leaves search, content, PIM and the storefront to other services. commercetools, Saleor and Medusa work this way, while suites such as SAP Commerce Cloud bundle these capabilities with a storefront. The difference matters when one capability needs to change without redeploying the rest.

How long does implementation take?

A first composable release usually takes several months. The range depends mostly on how many capabilities you replace in the first phase and how many systems they integrate with. A strangler fig migration delivers value sooner than a full replatform, but it stretches the total timeline.

Are there hidden costs?

Yes, the costs outside license fees are the ones teams underestimate. Integration work, a custom headless frontend, observability across services, and multiple vendor contracts all add spend that a suite includes by default. Budget for a platform team that owns the API orchestration layer, because integration ownership moves to you.

What is an example of composable commerce?

A common setup pairs commercetools for cart and checkout, Algolia for search, a dedicated PIM, Stripe for payments, and a Next.js frontend, all connected through an API orchestration layer. Each service sits on its own contract and can be replaced individually. Saleor or Medusa can fill the commerce core in the same pattern.

Composable vs headless: Which to choose?

Choose a headless frontend when the frontend is your main constraint, and composable commerce when several backend capabilities need to change independently. Headless decouples presentation from one commerce backend, while composable also decouples the backend itself. Start headless if a single platform still meets your pricing, catalog, and order needs, since components can be added later.

Get a composable commerce estimate

A composable commerce estimate starts with scoping the first capability to separate from your current platform, usually order management, product information, search, or the storefront. Bring your current stack, your integration list, and the change you can't ship today, and we'll size a first phase around them.

Our engineers build on commercetools, VTEX, Saleor, Medusa, SAP Commerce Cloud and Shopify Plus, with Contentful, Strapi or Storyblok for content. Our Fluent Commerce development services cover order management when fulfillment is the bottleneck, and our commerce development work covers the wider scope.

We're Netguru

At Netguru we specialize in designing, building, shipping and scaling beautiful, usable products with blazing-fast efficiency.

Let's talk business