Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Centralized Data Management For Distributed Microservices
NICHOLAS CRUM, SOFTWARE ARCHITECT
Discussion Document - Strictly Confidential & Proprietary
Agenda
What were we trying to build?
Who were we building it for?
How did we build it?
What were we trying to build?
Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009...
PROPRIETARY AND CONFIDENTIAL 3
Partnered with
The Container
Store to develop
core framework
based on Java
and Spring
Enterprise
Edition
introduced with
24x7 Support
B2B and Multi-
site Editions
introduced
Multi-site capabilities
proven at ICON across
11 brands and 26 sites
on a single code base
Sub-second
search proven
across 300MM
search documents
Repackaged
product Editions
including
Marketplace, Multi-
Site and API
Commerce
2009 2013 2015 2016 2014 2017 2019
Microservice-based
product introduced,
proven across 650k
single day
subscriptions and
60k entitlement
requests per minute
Deep Customization | Access to Source | Rapid Development
Metadata-Driven Admins REACT IS THE FOURTH ITERATION BACKOFFICE ADMIN TECH AT BROADLEAF
PROPRIETARY AND CONFIDENTIAL 3
Adobe Flex originally
used for Broadleaf’s
backend Admin console
Migrated to Google Web Toolkit
as the first metadata-driven
presentation technology
Migrated to Thymeleaf providing
better customization capabilities Migrated to React
as Single Page App
2009 2011 2013 2019
Why is this important?
🙁
Who were we building it for?
Audience
Developers Business
Business User
● Single Admin
● It Works!
● Not Interested in Technical
Developers
Backend (Java/Spring) Frontend (JS/React)
Backend Developer
● New Admin Interfaces, No
HTML
● Integrates with Existing Services
● Gradual Adoption
Frontend Developer
● Extensibility
● Component Library
● Modern Frontend Technologies
Provide a Framework to Enable Developers
How did we build it?
Client Application
● Built for Headless APIs
● Single-page Application
● Modern Frontend Stack
Metadata Service
Client Knows “How” Metadata Tells “What” and “Where”
As a Backend Developer...
Wait... What is Metadata?
Metadata V1 = JSON 🙁
● Poor Reuse
● Typos = Runtime Errors
● Hard to Understand
We Needed to Make a Change
Metadata V2 = Java DSL 🙁
● Spring Auto-Configuration
● Intuitive Builders
● Type-Checking
● Validation & Tests
● Internationalization
Who Needs Frontend Developers? 🙁
As a Frontend Developer...
Registering Components
What is the Purpose of a Component
Views Fields
Classified Metadata
● View Components
● Field Components
● And More...
Component Library
● Hundreds of Components
● Improve Velocity
● Extension Patterns
Register a Field
● Create New Fields
● Replace Existing Fields
● Simple or Complex
Register a View
● Create custom pages
● Blank Slate
● Use Metadata, or Don’t
Recap
Audience
Developers Business
● Metadata Service
● Java DSL
● Client-side Application
● Component Registrar
What We Built
Thank you!
To contact Broadleaf...
800.282.7443
www.broadleafcommerce.com