Broadleaf Microservices

Shared Concepts

Broadleaf Commerce Microservices benefit from shared libraries and functionality that is common to more than one service.

Below is a summary of some of the interesting common features with links to more detailed documentation.

Tenancy

Broadleaf services anticipate running in multi-tenanted applications. Most entities can be discriminated by tenant and application.

Messaging

Broadleaf leverages Spring Cloud Stream as an abstraction layer for interacting with messages and brokers. The framework uses messaging in many areas including data synchronization and inter-service communication.

Data Workflow

Data Workflow (Sandboxing) is an architectural feature used by the Administrative application that is supported by many entities within Broadleaf. Data Workflow allows users to make changes in an isolated instance that only the user can see. When they want to share their changes, they can promote them for approval and eventually deployment.

Data Routing

An important architectural concept with Broadleaf is to allow services to be composed into a single, "flex" deployment. Since each service has its own database but in some cases services share common concepts (like translations and sandboxing), we need a mechanism to handle this complexity.

Data Routing is a general term that describes this somewhat transparent, but important architectural concept.

Internationalization

Broadleaf provides internationalization features. The Pricing Service provides facilities for managing price lists in multiple-currencies and converting between currencies.

Many entities in the Broadleaf system including those in the Catalog Service support field level translations. For example, through the Broadleaf admin and import utilities, you can manage locale specific values for product names, descriptions and other fields

For entities that store amounts, the Money common library is used throughout the services. See Money.

Order Concepts

Broadleaf provides shared-libraries to represent key order domain concepts that are used between multiple services.

Rules Engine

Many Broadleaf Services utilize admin managed rules to control business logic. The RulesEngine common library provides a set of classes and functionality to simplify adding rule support to a service.

Common Error Handling

Broadleaf provides common libraries to support common error handling needs across services. See Error Common.

Secure Vault

Broadleaf provides common libraries for interacting with secure properties. See Secure Vault.

Security

Securing Broadleaf microservices with Spring Security, OAuth2, and Policies. See Security.

Marketplace Vendor Functionality

Broadleaf supports the concept of a "marketplace" application with contributions from "vendors". See Marketplace Vendor Functionality.