Powered by Lab Digital

Mach made
simple flexible possible scalable maintainable managable composable durable sustainable open source standardized

Are you composing a modern MACH architecture, but don't want to start from scratch? Try MACH composer.

Start composing now Need help?

Supported technologies:

Contentful
Commercetools
Terraform
AWS
Azure
Serverless
GraphQL
Amplience

Supported
technologies:

Contentful Commercetools Terraform AWS
Azure Serverless GraphQL Amplience

Compose with confidence

A technology and cloud agnostic, serverless microservice architecture designed for single and multi-tenant MACH platforms. Battle-tested, fully open source and built on industry standards.

---
general_config:
    environment: test
    cloud: azure
    terraform_config:
        azure_remote_state:
            resource_group: my-shared-rg
            storage_account: mysharedsaterra
            container_name: tfstate
            state_folder: test
    azure:
        tenant_id: e180345a-b3e1-421f-b448-672ab50d8502
        subscription_id: 086bd7e7-0755-44ab-a730-7a0b8ad4883f
        region: westeurope
sites:
    - identifier: my-site
      commercetools:
          project_key: my-site-tst
          client_id: ...
          client_secret: ...
          scopes: manage_project:my-site-tst manage_api_clients:my-site-tst view_api_clients:my-site-tst
          languages:
              - en-GB
              - nl-NL
          currencies:
              - GBP
              - EUR
          countries:
              - GB
              - NL
      components:
          - name: api-extensions
            variables:
                CT_CLIENT_SCOPES: manage_products:my-site-tst manage_orders:my-site-tst
                ORDER_PREFIX: mysitetst
components:
    - name: api-extensions
      short_name: apiexts
      source: git::ssh://git@github.com/your-project/components/api-extensions-component.git//terraform
      version: e638e57

Full support for Azure and AWS, and out of the box support for their serverless services portfolio, including API Gateway, Secrets Manager, SQS, Frontdoor, Key Vault and EventGrid, as well as AWS Lambda and Azure Functions.

The configuration and composition of MACH platforms is made accessible through easy to read YAML files that you can manage in version control.

Underneath we use the power of Terraform to configure all cloud services (including MACH services such as Commercetools, Contentful and Auth0) through infrastructure-as-code. Anything supported by Terraform, including community providers, is supported by MACH composer.

MACH composer works best with event-driven and serverless technology, by using AWS Lambda and Azure Functions as runtime for our customisations and integrations. But if you need something else, you're free to implement any runtime environment you want, through the flexibility of Terraform modules.

To make development easy, you are able (but not forced) to use the Serverless Framework to create your microservices. Furthermore, MACH composer provides a convenient CLI that you can use to manage your MACH project from the command line.

MACH composer can be deployed from the commandline by a developer, and is intended to run as part of a CI/CD pipeline for production deployments. It can be used with any CI/CD solution, and we have documented the most common ones (Github Actions, GitLab, Azure DevOps).

Blog articles

Frequently asked questions

MACH composer is a framework for orchestrating modern MACH architectures. It is a tool as well as an approach, and suggests a way of working across your teams.

Yes you can, although we recommend to use serverless and event-driven technologies. But if you want to use k8s, you can: everything in MACH composer is managed with Terraform, and you can provision any infrastructure you want using that. But again, only do that if you've crossed AWS Lambda or Azure Functions of your list, or if Docker is a desired runtime, take a look at AWS Fargate for example.

In essense, MACH composer can orchestrate anything that has an API, preferably through the use of a Terraform provider. That means that any 'configuration' or 'provisioning' operation against the system, should also be done through the API. Read more in our documentation.

This is a question we get a lot. We've built MACH composer out of the nessesity of applying a standard approach across our own projects, and we've noticed this is a problem that many other parties in the industry need to deal with. We've decided to open source this tool for it to become an industry standard, so that projects are approached more consistently and efficiently, which eventually will benefit the entire industry. We've seen this work with the open sourcing of our Terraform Provider for commercetools, and hope. that the same will happen with MACH composer.

Yes you can. Lab Digital, the company behind MACH composer, can help you get started up with MACH composer. Also, we continuously work on making MACH composer better and are interested in hearing about your use-case, and possibly extending MACH composer to facilitate that. And of course we are open to Pull Requests!