Tech Blog > Part 5: Emma’s Composable Commerce Architecture (1 of 3): The Cornerstones
Last update 29/07/2022

Part 5: Emma’s Composable Commerce Architecture (1 of 3): The Cornerstones

Andreas Dietrich Westendörpf
Andreas Dietrich Westendörpf
The proof-of-concepts conducted with the finalist solution candidates ultimately let us decide for the best systems.
Part 5: Emma’s Composable Commerce Architecture (1 of 3): The Cornerstones

The proof-of-concepts conducted with the finalist solution candidates ultimately let us decide for the best systems for Emma’s new E-Commerce platform, i.e.:

For the used SaaS:

For the self-developed services, we chose:

  • Static Site Generation (SSG) using VueJS and NuxtJS (Typescript) for the Storefront pages
  • Server-Side Rendering (SSR) with VueJS and NuxtJS (Typescript) for the user-specific dynamic pages
  • NodeJS (Typescript) as the default backend framework
  • golang for more performance-optimized backends

And finally, this all is based on a new and developer-friendly CI/CD infrastructure comprising of:

  • GitHub as Source Code Management (SCM)
  • GitHub Actions as CI
  • Pulumi as Infrastructure as Code (IaC) — with a Terraform bridge
  • Docker on managed Kubernetes deployment
  • all running on Amazon Web Services as cloud hyperscaler

This selection of tools also perfectly plays together with other tech stacks we run beyond E-Commerce, namely non-E-Commerce websites (VueJS & NodeJS), mobile app development in Swift & Kotlin and BI/data related workloads in Python & SQL.

But let’s explain our rationale one level more granular, essentially publishing parts of our Architecture Decision Records in their current version as of the writing of this article.

Why commercetools as E-Commerce Backbone?

We chose commercetools for the Emma E-Commerce backbone™, since it is providing the industry leading headless E-Commerce platform and it is highly flexible and extensible, with excellent developer tooling available.

commercetools was founded in Germany during 2006 and has since then been a pioneer in headless E-Commerce. In fact, it was the first E-Commerce platform to be designed for headless from inception. Today hundreds of small, medium, and large enterprises across the globe run their business through commercetools.

In addition to the benefits of following the MACH principles, commercetools stands out due to the following reasons.

Large feature set

Of the providers offering the same type of platform, commercetools brings the largest feature set off the shelf. It ships with a commerce API of 300+ endpoints with e.g., strong support for identity and access management, built-in functionalities for product information management (PIM), order editing and a powerful promotion engine.

Rich ecosystem

In addition to the feature set, commercetools is surrounded with an ecosystem of excellent developer tooling, most importantly mature support for GraphQL and Terraform. GraphQL solves many of the drawbacks REST APIs have and Terraform is a powerful tool to automate processes and quality assure deployments. Moreover, commercetools has a marketplace with plenty of official 3rd-party integrations.

Industry leading extensibility

To stay future-proof, flexibility and extensibility are key traits to a modern E-Commerce platform and commercetools is leading the pack in this regard. The data model can be extended with custom fields, the APIs can be extended by triggering snippets of custom code without having to build and maintain a microservice for every use case. In addition, commercetools is the only platform that is built truly event-driven. A crucial feature in a distributed and cloud-native tech landscape.

Provider stability

commercetools is the most established provider among those in the headless E-Commerce space. It has the strongest financial backing (recently announced their series-C funding) and has the largest enterprise customer base.

Why ContentStack as Content Management System?

ContentStack was chosen as the headless CMS for all structured content across the organization since it provides a stable and proven CMS with focus on medium to large business and enterprise customers, fitting well with Emma’s future growth plans. The product was originally created in 2014, but was back then part of another company’s portfolio. It was first in 2018, acquired by Germany-based Software AG, that the Company ContentStack officially was created.

Overall ContentStack provides a very wide set of key features and characteristics, i.e.:

Flexible Content Models

ContentStack uses a very powerful, flexible, and extendible content model with multiple variants, making it easy to shape your content in an optimal way for most, if not all, use cases.

Versioning

All content is versioned and using their built-in UI it is very easy for non-technical users revert to any version.

Scheduling and Grouping

Content publishing can be scheduled and grouped thus making it easy to synchronize releases of content.

Collaboration and Workflows

Strong collaboration and workflow features aimed to make content editing in teams frictionless, concurrent, and productive.

Pre-Built Integrations

ContentStack also is part of the MACH Alliance and provides native integration with the commercetools platform.

In case of the CMS the decision between the two finalist PoC solutions was close. In the end ContentStack made the race due to a couple of points that made them stand out:

  • High customer retention at 98% — companies move to ContentStack, but not away from it.
  • Price — focusing on business customers, they offer a compelling price model that does scale more reasonably as we rapidly grow.
  • Offers publishing rules and workflows — makes it possible to have very good control over who and what can be published.
  • Business customer centric feature roadmap ahead is more suitable to us.


0