What is MACH architecture?

MACH architecture comprises of Microservices for independent deployment of functionalities, API-First design for seamless integration, Cloud-Native infrastructure for scalable and resilient operations, and Headless systems for flexibility in front-end presentation.

Microservices

Microservices is a cloud-native architecture pattern that structures an application as a collection of services that are organised around specific business or technical capabilities.

They are usually owned by an in-house small team of developers that independently code, test and deploy its functionality. They can also be owned by third-party companies providing SaaS solutions, in the form of a self-contained system that developers integrate into an existing business solution.

They are loosely coupled, meaning that the different Microservices that compose the solutions are weakly associated to each other. Changes in one service does not necessarily affect other system components. Services in a loosely coupled system can be replaced with alternative in-house or third party implementations that provide the same set of services and functionality, therefore not tying a business or developer to a particular vendor or technology.

They closely follow the Single Responsibility Principle, which is a software development principle that states that every service in a system should have responsibility over a single business or technical concern.

There are many other advantages in adopting a Microservices architecture, including enabling development teams to efficiently and repeatedly deliver large applications, and business to adopt best-in-class SaaS solutions while avoiding vendor lock-in.

API-First

In an API-First approach APIs are treated as “first-class citizens”, that expose all business functionality thru a well-defined set of contracts that allows two or more systems to interact.

API-First is closely associated to Microservices; the defined contracts are the entry point to all the service business functionality.

Having these contracts in place, that oftentimes follow API description languages such as Open API, contribute to a robust design and foster collaboration between different technical and non-technical stakeholders.

This strategy allows businesses to create APIs that can be efficiently developed for all types of devices and platforms and can serve all types of applications in a multi-channel environment.

Cloud-Native

Cloud-Native is a modern approach to building and designing and operating software applications that take full advantage of the cloud computing model.

This model takes advantage of many modern software development strategies such as agile methodologies, DevOps, continuous integration and continuous delivery and microservices and containers, resulting in apps and services that are flexible, scalable and resilient.

Headless

Headless systems are API-First services that allow the creation of applications where the user experience is completely decoupled form the back-end. They are also referred to as composable web.

Instead of offering a traditional user interface (presentation layer), headless systems make its content accessible via RESTful or GraphQL APIs that can be consumed by many type of services.