Architecture Of A Composable eCommerce Store Using Elastic Path

What Is Composable Architecture?

Composable architecture is a modern approach to software architecture that works on the principle of selecting the finest eCommerce components and combining them through a tailored, customised application. This application is constructed with the specific purpose of satisfying unique business needs. It is an extension of the concept of microservice-based technology, where a set of loosely-coupled services from different vendors can be combined to create highly cohesive eCommerce solutions.

For example, we could take cloud-based systems and combine them into a single, fantastic eCommerce web store. These systems might include:

  • Elastic Path eCommerce
  • Fredhopper Search
  • Auth0 for identity management
  • Tacton CPQ
  • An ERP system for pricing and order placement
  • GoSquared Forms
  • Google Analytics
  • InRiver PIM

By adopting this composable architecture, businesses are no longer constrained to using only monolithic application suites that are tied to licensing restrictions. Instead, a business can utilise innovative modular technology from a single provider. This modern approach is also known as “Packaged Business Capability” and is characterised by its flexible and adaptable structure. Implementing a modular approach enables both businesses and developers to offer an improved experience across all customer touchpoints.

For a more detailed look at how to create a composable B2B eCommerce store, take a look at our blog.

Microservices and PBCs

Microservices and Packaged Business Capabilities (PBCs) are both approaches to composable eCommerce architecture that emphasise modularity and flexibility.

Microservices

Microservices involve breaking down applications into independent smaller services that use Application Programming Interfaces (APIs) to communicate. Each service performs a specific function that can be developed, deployed and scaled independently of the other services. Apart from offering greater flexibility and agility, this method of software development is what composable eCommerce is all about, and it allows for easier maintenance and scaling.

Packaged Business Capabilities (PBCs)

In contrast, PBCs focus on creating pre-built, reusable software components that represent specific business capabilities. Examples of this include inventory management or customer relationship management. These components are designed with the purpose of easy integration into larger software systems and can be specifically customised to suit a business’s bespoke needs. Employing PBCs provides for greater flexibility in selecting the best technology solutions from multiple vendors instead of being limited to a single monolithic software suite.

Microservices emphasise independence and flexibility through a technical approach to software development, while PBCs offer reusability and integration through a business-focused approach. These two approaches have significant overlap but also have unique distinct characteristics that can be combined to create more efficient composable eCommerce solutions.

Why Use Composable eCommerce?

Benefits of Composable eCommerce

As discussed above, composable eCommerce has a range of benefits over monolithic eCommerce solutions. A few key benefits are as follows –

  • Flexibility

By enabling a choice among the components that your business requires and leaving out the ones it doesn’t, you are guaranteed the flexibility to build a custom solution that meets specific requirements rather than being limited by functionality through a uniform solution.

  • Scalability

Composable eCommerce solutions are highly scalable and can be easily scaled up and down to meet the real-time demands of your business without having to pay for additional resources that may not be required all year round.

  • Speed

By leveraging the use of pre-built components, businesses can innovate faster and reduce the time and costs that are commonly associated with developing new functionalities from scratch.

  • Cost-effectiveness

The cost-effectiveness offered by composable eCommerce solutions is unlike what you would receive in traditional monolithic software solutions. This is because you are essentially paying for only the components that your business requires at a specific point in time. Thereby allowing you to allocate your resources more efficiently to other areas of requirement.

  • Integration

Composable eCommerce architecture can be easily integrated with existing systems and applications as well as providing the ability to integrate new technologies into the solutions without causing changes to the entire application.

  • Personalisation

The customisable nature of composable eCommerce is perhaps its biggest benefit. It can be used to gather and leverage customer data to provide more tailored experiences that truly set your business apart from its competitors.

  • Efficiency

Building composable eCommerce solutions ensures that development teams no longer have to worry about changes in functionality or full-stack upgrades affecting the entire system. The process is made so efficient through the flexibility and speed offered by these composable eCommerce modules that there is minimal risk of a change causing the entire application to crash. Efficiency is increased all around.

Modern businesses are complex beasts. Customers are increasingly diverse in terms of their needs, which are changing more rapidly than at any point in the past. They are increasingly demanding and expect to be able to get faster, better results using online tools. Coupled with the fact that competition in today’s world is fierce, businesses can pop up anywhere in the world more quickly and easily than ever before, often without the decades of experience that existing players have.

Composable Architecture vs Monolithic Architecture

Composable eCommerce solutions address the limitations of traditional, monolithic eCommerce solutions. In a monolithic architecture, the functionality is contained in a single application, making it difficult to modify or add any new functionality without affecting changes throughout the entire application. This makes traditional monolithic eCommerce architecture difficult and expensive to maintain and scale.

Composable eCommerce solutions address these challenges by breaking down an eCommerce solution into simpler, independent components that can be composed to form entire solutions. With composable eCommerce architecture, each component is developed independently, thereby making it easier to modify or even replace, without affecting change across the entire application. In comparison to traditional monolithic eCommerce solutions, composable eCommerce solutions provide a multitude of benefits, including flexibility, scalability and increased cost-effectiveness. These composable eCommerce solutions also allow businesses the opportunity to build specific solutions that are customised to their specific needs rather than being constrained by the limitations of the one-size-fits-all monolithic software solutions.

This is especially pertinent in the B2B eCommerce sector. As composable eCommerce architecture is built on a modular approach, businesses can choose the components they need while leaving out the ones they don’t. This in turn helps reduce developmental costs through pre-built components. Basic solutions to eCommerce are too simple to cope with the complex environment and challenges presented by the modern business world, but they are easily tackled by composable eCommerce solutions.

Composable eCommerce offers the opportunity of operating within the Goldilocks Zone of the software world by enabling eCommerce solutions that are just complex enough to ensure you have a competitive edge in this rapidly-changing modern world.

Using Elastic Path

We use Elastic Path Commerce Cloud to provide a cloud-based API and state management system for the core eCommerce functions such as creating baskets, checkout and payment integration to name a few. It enables businesses to integrate these eCommerce facilities into existing systems and processes while allowing the opportunity to adapt and evolve the overall eCommerce strategy over time. Elastic Path doesn’t provide the customer-facing user interface; it only provides the microservices required for eCommerce.

The Front End

The Front End for the web store is a simple React front end built using Gatsby. Gatsby is a fantastic React framework that ensures a very high-performance web store by executing code at build time to build pages. For example, in a traditional web store, there would be a single product page (e.g. product.aspx) that would retrieve product information at runtime from various APIs and databases and build all the information. This is a flexible but slow approach. In the modern world where SEO is increasingly based on page speed, this approach is no longer good enough.

The Gatsby approach Is to generate a page (from the PIM) for every product at build time, so that when the user views the page at runtime, there is little or no database or API access. This makes the web store run significantly faster as well as making it more resilient and more secure. Additionally, Gatsby can be used with various back-end eCommerce and CMS platforms, such as Shopify and Magento, to create a unique composable eCommerce solution that is SEO-friendly, and optimised for speed, flexibility and even security.

Back End For The Front End

Gatsby can’t build everything up front, though. Some information is dynamic and does require runtime API calls. Searches occur in real-time (using Fredhopper), and pricing and availability are also retrieved in real-time. However, some of the third-party services we want to use (for search, eCommerce etc) use secure APIs (e.g. with a username and a password). We can’t put these secure credentials into our front-end Javascript, so instead we create a “Back End For The Front End” (BFF).

The BFF is the glue that holds everything together. It is a server-side API designed to provide all the functions that the front end requires. It is a very thin façade for the actual microservices that do the work and exists purely to satisfy a security requirement (there are no credentials to be stored in Javascript).

The front end talks to the BFF and the BFF talks to the other services. This does add a little bit of latency, but it provides the required security level. The Front End and BFF are typically hosted on exactly the same subdomain so that cookies work properly and there are no domain-related issues.


Graceful Fallback During Maintenance or Downtime

Not all of the microservices used by the eCommerce store are as reliable as one may like. ERP systems do not always cope well under load and sometimes have to go down for maintenance. As we have a BFF, we can deal with service quality problems there.

Each operation (such as retrieve price) may have a short timeout period after which the BFF will stop contacting the third-party service and instead return an “unknown” response to the Front End. The Front End can then return a suitably friendly message asking the user to be patient. As all of this activity takes place asynchronously, the web store remains fast and responsive, even though one or more of its microservices may be having quality of service problems.

No Database

A highly desirable side-effect of the composable eCommerce approach is that we ended up with no customer database to run the web store. The lack of a database has significantly reduced the support burden of the solution.

  • All state is provided by the third-party services
    • Elastic Path provides baskets, accounts etc
    • The ERP system stores orders
    • Users are managed by Auth0

This has been a whistle-stop tour of what a composable eCommerce solution might look like and how it can benefit an organisation, but there is a lot more to building a web store than we have covered here.

At McKenna Consultants, we’ve worked extensively in composable architecture for B2B eCommerce solutions, and our process is designed to ensure that you receive a bespoke, turnkey web store that will suit your business’s needs. If you would like more information about software integration or digital development, please contact us today.

Nick McKenna
Since 2004, Nick McKenna, BSc, MBCS Biography has been the CEO of McKenna Consultants. McKenna Consultants is a bespoke software development based in North Yorkshire, specialising in Cloud development, mobile App development, progressive web App development, systems integration and the Internet of Things development. Nick also holds a First Class Degree in Computer Science (BSc) and wrote his first computer program at the age of nine, on a BBC Micro Model B computer. For the last 21 years, Nick has been a professional computer programmer and software architecture. Nick’s technical expertise includes; Net Core, C#, Microsoft Azure, Asp.Net, RESTful web services, eProcurement, Swift, iOS mobile development, Java, Android mobile development, C++, Internet Of Things and more. In addition, Nick is experienced in Agile coaching, training and consultancy, applying modern Agile management techniques to marketing and running McKenna Consultants, as well as the development of software for clients. Nick is a Certified Enterprise Coach (Scrum Alliance), SAFe Program Consultant (SAI), Certified LeSS Practitioner (LeSS) and Certified Scrum@Scale Practitioner. Outside the office, Nick is a professional scuba diver and he holds the rank of Black Belt 5th Dan in Karate.