Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE...

42
Centralized Data Management For Distributed Microservices NICHOLAS CRUM, SOFTWARE ARCHITECT Discussion Document - Strictly Confidential & Proprietary

Transcript of Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE...

Page 1: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Centralized Data Management For Distributed Microservices

NICHOLAS CRUM, SOFTWARE ARCHITECT

Discussion Document - Strictly Confidential & Proprietary

Page 2: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Agenda

What were we trying to build?

Who were we building it for?

How did we build it?

Page 3: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

What were we trying to build?

Page 4: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

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

Page 5: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

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

Page 6: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 7: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Why is this important?

Page 8: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

🙁

Page 9: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 10: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Who were we building it for?

Page 11: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Audience

Developers Business

Page 12: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Business User

● Single Admin

● It Works!

● Not Interested in Technical

Page 13: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Developers

Backend (Java/Spring) Frontend (JS/React)

Page 14: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Backend Developer

● New Admin Interfaces, No

HTML

● Integrates with Existing Services

● Gradual Adoption

Page 15: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Frontend Developer

● Extensibility

● Component Library

● Modern Frontend Technologies

Page 16: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Provide a Framework to Enable Developers

Page 17: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

How did we build it?

Page 18: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Client Application

● Built for Headless APIs

● Single-page Application

● Modern Frontend Stack

Page 19: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Metadata Service

Page 20: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Client Knows “How” Metadata Tells “What” and “Where”

Page 21: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

As a Backend Developer...

Page 22: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Wait... What is Metadata?

Page 23: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 24: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Metadata V1 = JSON 🙁

● Poor Reuse

● Typos = Runtime Errors

● Hard to Understand

Page 25: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

We Needed to Make a Change

Page 26: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Metadata V2 = Java DSL 🙁

● Spring Auto-Configuration

● Intuitive Builders

● Type-Checking

● Validation & Tests

● Internationalization

Page 27: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 28: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 29: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Who Needs Frontend Developers? 🙁

Page 30: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

As a Frontend Developer...

Page 31: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Registering Components

Page 32: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

What is the Purpose of a Component

Page 33: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Views Fields

Page 34: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Classified Metadata

● View Components

● Field Components

● And More...

Page 35: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Component Library

● Hundreds of Components

● Improve Velocity

● Extension Patterns

Page 36: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Register a Field

● Create New Fields

● Replace Existing Fields

● Simple or Complex

Page 37: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Register a View

● Create custom pages

● Blank Slate

● Use Metadata, or Don’t

Page 38: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Recap

Page 39: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The
Page 40: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Audience

Developers Business

Page 41: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

● Metadata Service

● Java DSL

● Client-side Application

● Component Registrar

What We Built

Page 42: Centralized Data Management For Distributed Microservices · Intro to Broadleaf CUSTOM ENTERPRISE COMMERCE SOLUTIONS SINCE 2009... 3 PROPRIETARY AND CONFIDENTIAL Partnered with The

Thank you!

To contact Broadleaf...

[email protected]

800.282.7443

www.broadleafcommerce.com