I DON’T UNDERSTAND
MICRO-FRONTENDS
@lucamezzalira
MICRO-FRONTENDS @lucamezzalira Luca Mezzalira VP of Architecture - - PowerPoint PPT Presentation
I DONT UNDERSTAND MICRO-FRONTENDS @lucamezzalira Luca Mezzalira VP of Architecture at DAZN Google Developer Expert London JavaScript Community Manager Architecture evolution DB Application Server Single-Page Application
I DON’T UNDERSTAND
@lucamezzalira
🧑
Luca Mezzalira
VP of Architecture at DAZN Google Developer Expert London JavaScript Community Manager
Architecture evolution
Application Server Single-Page Application DB
Architecture evolution
API Gateway Single-Page Application DB Microservice DB Microservice DB Microservice
Architecture evolution
API Gateway Single-Page Application DB Microservice DB Microservice DB Microservice MFE MFE MFE MFE
Who is using micro-frontends
MICRO-FRONTENDS
Micro-frontends are the technical representation of a business subdomain, they allow independent implementations with the same or different technology choices. Finally they should avoid sharing logic with
single team
What is a micro-frontend?
Landing page Sign in Sing up Catalog Help Landing page Sign in Sign up Catalog Help
MICRO-FRONTENDS
Model around business domain Culture of automation Hide implementation details Decentralisation Deploy independently Isolate failure
Model around business domain
Core Subdomain Supporting Subdomain Generic Subdomain
Model around business domain
Landing page Sign in Sign up Catalog Schedule Search
Generic Generic Core
Model around business domain
Landing page Sign in Sign up Catalog Schedule Search
Landing page MFE Auth MFE Discovery MFE
Model around business domain
Amsterdam Generic Subdomain London Core Subdomain Leeds Supporting Subdomain Katowice Supporting Subdomain
Decentralisation
Tech Leads Architecture Team Mars Team Venus Team Moon
Decentralisation
Culture of automation
1 1 1 1 1 1 1 1 1
Independent deployment
Catalog 2.0.0 Landing Page 1.1.0 My Account 2.4.1 Catalog 1.9.2
Hide implementation details
Subscription Micro-Frontend PayPal Component
CONTRACT
MICRO-FRONTENDS
Key micro-frontends decisions
Define a micro-frontends
header footer image related articles article description landing page sign in sign up catalog
1. Up front investment 2. Teams structure 3. Great for SEO 4. Testing challenges 5. Scalability challenges 6. Dependency management
Horizontal VS Vertical split
1. Traditional development 2. Embracing JavaScript ecosystem 3. Dynamic Rendering for SEO
Compose micro-frontends
ORIGIN CDN CLIENT
Route micro-frontends
ORIGIN CDN CLIENT
R R R R
Micro-frontends communication
header footer image related articles article description header footer image related articles article description mysite.com/section?id=123
Isolate failure
header footer image related articles article description Catalog Error
MICRO-FRONTENDS @DAZN
Micro-Frontend @ DAZN
CSS HTML App.js Vendor.js
DAZN implementation
BOOTSTRAP
Micro-Frontends
DAZN implementation
(*) with some exceptions
How bootstrap works
CSS HTML App.js Vendor.js
Micro-Frontend
DAZN routing
Cloudfront Lambda@Edge Bootstrap Micro-Frontend
Components
integration
MICRO-FRONTENDS
APIs first design principles
Design System and Governance
Button List Accordion Checkbox Fonts Colors Icons Contract Testing Visual Regression Performance Budget NPM Private Registry DESIGN TOKENS COMPONENTS LIBRARY AUTOMATION
Duplication over abstraction
Duplication over abstraction
Core Library Lib A Lib B Lib C Project Moon Project Saturn
Dependencies Management
header footer image related articles article description Angular 9 React 16.1 React 15.1
Performance
Business Evolution
Auth MFE Sign in MFE Subscribe MFE
SEO
Server Side Rendering Dynamic Rendering
MICRO-FRONTENDS
Version of Control
Monorepo Polyrepo
latest libraries versions
investment
development methods
strategies available
Continuous Integration
Building Evolutionary Architectures - O’Reilly
Fitness Function is a function that provides an objective integrity assessment of some architectural characteristics
Continuous Integration
Static Analysis Run tests Analyse Permutations Build and Optimize Artifacts saved Clone Git repo Module swapping Bundle size check
Micro-Frontends Deployment
Catalog Sign In Help
Components Deployment
header footer image related articles article description Button List Accordion Checkbox
Strangler Pattern and Canary Releases
Cloudfront Lambda@edge Single Page App Catalog MFE Auth MFE Help MFE
Lambda@Edge in DAZN: bit.ly/2SZ0Y24
LET’S
Micro-frontends summary
Orchestrate Compose Communicate Observability Teams impact Automation Design System Dependencies Management Performance Duplication over AbstractionUseful links
bit.ly/386DNbx Resources bit.ly/2v79e70 Webinar
30 days FREE ACCESS
bit.ly/32glJJF
buildingmicrofrontends.com
t: @lucamezzalira w: lucamezzalira.com e: mezzalab@gmail.com
🤤🤤 🤤