Introduction to brX GraphQL Service - Bloomreach Experience - Open Source CMS

Introduction to brX GraphQL Service

This Bloomreach Experience Manager feature requires a standard or premium license. Please contact Bloomreach for more information.

Introduction

GraphQL is getting more attention in modern application development as it tries to fulfill various data requirements with complex state management for distinct front-end clients. GraphQL provides benefits through its declarative model which helps developers create a consistent, predictable API across different clients and platforms.

Since v14.3, the Bloomreach Commerce Accelerator provides an optional GraphQL API set of commerce features for developers who want to take advantage of GraphQL technologies. This GraphQL API set is functionally equivalent to the Commerce Connector SDK and Commerce Connector Modules, where the former is based on GraphQL technologies for any GraphQL clients and the latter is based on Java technologies for Java-based applications only.

Architecture Overview

In a very high level, a simplified architectural overview can be depicted as follows:

An SPA (or any type of GraphQL client applications) may retrieve or update data in the Commerce Backend Platforms through the brX GraphQL Service. While it retrieves the page model from the Page Model API in brXM to render pages and components, the SPA may read or update commerce related data from the brX GraphQL Service in commerce related components (e.g, Product Grid, Product Detail, Cart, etc.).

The Bloomreach Commerce Accelerator also introduces new Open UI based picker plugins, which provide the same features (selecting related product or category in documents) as the old Wicket-based picker plugins. The only difference is that the new Open UI based picker plugins communicate with the new GraphQL API whereas the old Wicket-based picker plugins use the existing Java API.

The brX GraphQL Service is comprised of multiple layers of components internally based on Apollo Server technologies:

  • Server and Resolvers: the Apollo Server and GraphQL resource resolvers implementation which invoke the corresponding DataSource operations
  • DataSource interfaces: Various commerce related abstractions such as CategoryDataSource, ItemsDataSource, CustomerDataSource, CartDataSource, OrderDataSource, etc. 
  • Commerce Backend specific DataSource implementations: DataSource implementations for each Commerce Backend Platform in a separate package

For further details, see the Further Reading section.

Further Reading

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?