Broadleaf Microservices

Tech Stack

Overview

Broadleaf Microservices are developed using Java/Spring and other leading open source technologies. The technology diagram below shows the primary technologies used.

Tech Stack Diagram

Spring and Java

Broadleaf APIs and service components are written in Spring and Java and deployable as Spring Boot applications. Broadleaf utilizes Spring technologies where possible so developers can code in technologies they are used to.

Broadleaf leverages:
  • Core Spring

  • SpringREST

  • SpringData

  • Spring Cloud Streaming

  • Spring Cloud Gateway

  • Spring Security

Broadleaf works to provide upgrades compatible with the latest versions of Spring as they are released by Spring and mirrors Spring’s Java compatibility.

Containerization

While not required, most implementations will utilize docker and Kubernetes for deployments and auto-scaling. See Deployment Flexibility for more information on the ways Broadleaf microservices can be deployed.

Event Driven Messaging

Broadleaf uses Spring Cloud Stream for messaging. Broadleaf officially supports Kafka and GCP but other technologies that are also compatible with Spring Cloud Stream

Unified Admin, Demos, and Starters

Broadleaf includes a feature rich unified admin application. This admin is able to provide a centralized, secure environment for backend data management including products, customers, and orders. It does so by interacting with services through a rich, configurable metadata representation of each service. You can also add your services. Learn more about the Unified Admin

Cloud Hosting Options

Broadleaf relies on technologies that are cloud agnostic and can be run in any cloud or private data center in which a complex Spring application could be run. This of course includes, Google Cloud, AWS, and Azure.

Standards

Broadleaf has adopted several standards for documentation and security of microservices. All service APIs are documented with OpenAPI version 3. The Broadleaf security model is based on OWASP best practices. Authorization for service calls is based on standards including OAuth although implementation details are flexible as they are based on Spring Security and configurable to work with a variety of security models.

Persistence

For Broadleaf services that require persistence, all support JPA with first class support for PostgreSQL, Oracle, MySQL, and MariaDB. Other JPA compatible RDBMS can be used but may have some limitations and require additional customization for advanced features.

Some Broadleaf services including those used by PIM have MongoDB implementations. Broadleaf recommends PostgreSQL as the standard that works the best as a whole across all of the use cases; however, broad support is available for organizations that desire to use other DB technologies.