Zone’s Head of Engineering, Paul Kiernan, explains what composable architecture is, why it’s beneficial for businesses and how to design one.
Over the last year, we’ve seen a seismic shift in modern web architecture. Historically we used to find it challenging to plug different systems together without heavy custom work.
However, we are now seeing headless content management systems (CMSs), e-commerce platforms, customer relationship management systems (CRMs), and other solutions that are built to be integrated with each other. This trend is called composable or MACH (Microservices, API-first, Cloud-native, and Headless) architecture.
- What is composable architecture?
- The advantages of composable architecture, and why you should do it
- How to design a composable architecture
- Things to watch out for
The non-tech or more business/experience-focused people might wonder what the fuss is all about and why they should care about composability. If this is you, or you just want to understand what all the cool kids are talking about, then this blog will help.
What is composable architecture?
If you’ve ever looked at buying a Digital Experience Platform (DXP) or a single vendor end-to-end solution in the past, you’ll know that costs can mount up as you buy modules, and sometimes those modules don’t work as well as you hoped.
Composable architecture is a movement where vendors offer the best parts of their systems and allow you to put them together.
For example, in the mid-1990s, there was a big boom in sound systems. Two types of sound systems hit the market; one was an all-in-one, where the CD, radio and tape player (yes, it’s that long ago) were all part of one moulded system.
The other type was called “HI-FI separates” or “stacking system”. Separates allow you to buy the amplifier separately from the CD player, separate from the tape deck, and separate from the radio (you get the idea). You then connect the separates with standard wires.
The beauty of this system was you could buy the best CD player from Vendor A and the best Amp from Vendor B. If the radio blew up, no problem, buy a new radio and swap it. When vinyl came back into fashion, no problem, buy a turn table and add it on. Compare this to the all-in-one hi-fi system where if something breaks (e.g., the CD player), you either have to live with the broken or malfunctioning component or buy a whole new system. I bought a separate system 20 years ago and still have it.
In a HI-FI separate system, each box is plugged together with standard wiring. In a composable approach, the components in the architecture make their functionality available via Application Programming Interfaces (APIs). Development teams can then use components from different vendors to create solutions by integrating the APIs (plugging them together) or by putting a custom-designed user interface (head) on top of the component (this would commonly be called a headless approach).
The approach is primarily a high-level architecture pattern, so we’re talking about components like “e-commerce”, “content management”, “customer relationship management”, “personalisation”, etc. We could also be talking about business functions within a piece of software (e.g., order management, stock, products, etc.)
Some might wonder how this differs from the “best-of-bread approach”, where we pick the best tools for the job and integrate them. The fundamental difference is all offerings advertising themselves as headless and composable are this way by design. Composability is not an afterthought and is not shoehorned into legacy architecture.
The advantages of composable architecture, and why you should do it
When you talk composability to developers, you might find them saying they’ve always done this — and that’s true. Engineers have always looked to build components and API layers between services. The difference now is that Vendors are making it much easier to do.
So, this article talks a lot about vendors and third parties, but applying composable architecture or MACH architecture principles to your business design brings many benefits. Most of the benefits below relate to custom-built business components too.
1. Setting your business up for success
Gartner predicts that by 2023, 60% of mainstream organisations will list composable business as a strategic objective (Source: ‘Adopt a Composable DXP Strategy to Future-Proof Your Tech Stack’).
Composable architecture is one of the fundamental building blocks of a composable business. If you want to lay the foundations of a successful business, take a composable approach. It’s as simple as that.
2. Flexibility of choice and flexibility to change
The opposite of composability is picking one monolithic solution that provides you with all the functionality you need in one application. A one-stop shop like this can be suitable for some applications. However, suppose you need multiple pieces of functionality (CMS, CRM, Personalisation) and want to choose the best providers for each part of the solution or the flexibility to build a custom-designed experience tailored to your users and business needs. In that case, composable architecture will serve you well.
Maintaining flexibility of choice throughout a solution’s lifetime is also essential to allow the solution to evolve along with the business’s requirements. Creating a composable architecture means enabling the flexibility to change, and we all know the one constant in business: change.
It’s not just the technology solution that benefits from flexibility. Teams can also create better developer experiences because they have the flexibility to pick the best tools or frameworks for their needs; happy teams mean more productive teams and better output.
3. Flexibility to upgrade
The great thing about plugging different components together (like the the hi-fi separates analogy) is that you can unplug, upgrade or replace one component without heavily affecting the others.
For example, consider a solution that has personalisation, CRM and CMS all part of the same single application. If you want to use a new CRM, you might have to shift your entire solution to a new vendor. With a composable solution, you can swap out just your CRM component for another, and then redo your integration without having to rebuild your CMS or personalisation functionality.
At a more granular level, you may have a solution with the customer-facing UI and the CMS as part of the same solution. If you want to swap your CMS for a new vendor, then you will need to rebuild your entire solution. You will also need to use the technology stack that the CMS defines.
Instead, when you have a headless CMS (a CMS component) with a decoupled custom-built customer experience UI, you could replace or upgrade the CMS and keep the UI. It’s worth caveating that you can’t just “swap” one component for another; change will still incur dev time.
4. It helps to avoid vendor or technology lock-in
You can work with different vendors for each architecture component with a composable solution. The decoupling between components means you aren’t locked into one provider for the entire solution and can get the vendor to work for you rather than the other way around.
5. Sets the foundations for sustainability
We all are responsible for keeping our ecosystem healthy, habitable and sustainable for future generations. Although a digital product itself doesn’t create waste when it’s “thrown away” or deprecated, building and running a digital product uses energy, which produces carbon and pollutes our environment (until we have 100% renewable fuel!).
Creating a sustainable digital product is a big topic, but in this article we will keep it high-level and look at the three principles of a circular economy:
- Design out waste and pollution — A composable architecture can help us design a solution to evolve. In other words, we don’t need to build everything up-front. Instead, we build it when we know we need it. This approach removes waste from the early development phase and keeps the solution lean, which should consume less energy.
- Circulate products and materials / Keep products and materials in use — We can extend a product’s life through maintenance and upgrades. We’ve already discussed the ability to upgrade components by swapping out existing parts or even evolving a system over time. This ability extends the overall digital product’s life, ultimately saving the energy cost of new development.
- Regenerate natural systems — This principle is all about renewing or regenerating our environment and ecosystem. It’s probably less applicable to the composable architecture pattern and has more to do with broader technology choices regarding green hosting and the overall sustainability of the delivery approach; something we will cover in future articles.
How to design a composable architecture?
A composable architecture isn’t suitable for everyone or every solution. However, if your solution needs to start lean and evolve quickly, or if you need to build a bespoke and high-quality customer experience, then a composable architecture might be right for you.
The following are some tips on how to go about designing a composable architecture:
- Understand your business and user needs.
- Design the high-level solution and carve out the main building blocks. For instance, does your content need to change? Do you need to sell products? Are you looking to send emails/alerts? Are you capturing customer leads? If you answer yes to any of these questions, you might need a high-level component in the architecture.
- Research the options for each component, both off-the-shelf and custom build.
- Align to your requirements (user, business, non-functional) — consider how well these components integrate and assess the best option for each component.
- Validate through spikes, proofs-of-concept or prototypes.
- Make your decision.
It’s not all plain sailing — things to watch out for
Composability isn’t a silver bullet to all our technology problems, and any solution has its own implications. Here are a few to consider:
- Vendor management — Composability can sometimes involve managing multiple vendors and contracts
- Employee experience — Admin users might need to interact with multiple back-office systems
- Architectural complexity — Be conscious of the boundaries, chattiness (frequency of communication between services) and latency between components. Decoupled architectures can also lead to deployment and operation complexity
Hopefully, this article has been of value, and you can now join in the chat with the techies at the pub or client social. To recap briefly:
- Composable architecture is plugging different pieces of functionality together to build a solution tailored to your needs.
- Composable architecture is a good thing because it gives you the following:
- The flexibility of choice
- The flexibility to change
- The flexibility to upgrade
- Helps avoid vendor lock-in
- Sets the foundations for sustainability
3. Composable architecture isn’t appropriate for every solution, but if done well, it can create a lot of value.
4. It’s not a silver bullet, and there are extra considerations before jumping in with both feet.
Before finishing this article, I think it’s important to iterate Gartner’s composable business stat one last time:
Gartner predicts that by 2023, 60% of mainstream organisations will list composable business as a strategic objective.
A composable architecture is one of the fundamental building blocks of a composable business. If 60% of mainstream organisations are moving in this direction, it’s worth reflecting if you should too.
So, if you want help designing and building your composable architecture or help/guidance in selecting each component, our door is always open.
Writer’s note: A huge thanks to Zone’s Technical Director, Steve Newstead, for his support and advice when writing this piece.