SlideShare a Scribd company logo
Full-stack Microservices
William Bartlett
 w.bartlett@treeptik.fr  @bartlettstarman
 punkstarman  punkstarman
Treeptik
15 November, 2018
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 1 / 45
whoami?
William Bartlett, Level 23
programmer
Agile Coach, Java dev,
Container enthusiast
Web Component nut (Polymer)
Former doctoral student
“Use the right tool for the
job”
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 2 / 45
Introduction
Section 1
Introduction
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 3 / 45
Introduction
Microservices
Advantages
separation (”divide and conquer”)
autonomy
automation
modularity
scaling
tech stack transitions
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 4 / 45
Introduction
Microservices
Price to pay
complex integration
consistency or availability
hard boundaries
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 5 / 45
Introduction
Microservices
Microservices are cool

William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 6 / 45
Introduction
Microservices
Server-side Client-side
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 7 / 45
Introduction
Microservices
Micro Frontends: https://micro-frontends.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 8 / 45
Introduction
Issue
Issue
How to build a large product with entirely autonomous multi-disciplinary teams?
Bring microservices to the front-end
Tech solution: distributed web components
Org solution: Atomic Design
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 9 / 45
Introduction
Outline
It’s All Relative
Web Components
Atomic Design
Full-stack Microservices
Case Study
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 10 / 45
It’s All Relative
Section 2
It’s All Relative
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 11 / 45
It’s All Relative
Micro Frontends
Micro Frontends : https://micro-frontends.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 12 / 45
It’s All Relative
Project Mosaic, Zalando
Skipper (router), InnKeeper (router config API)
Tailor (layout), Quilt (layout storage)
Shaker (components)
Tessellate (SSR)
https://www.mosaic9.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 13 / 45
It’s All Relative
OpenComponents, OpenTable
API for UI components
SSR or not
https://opencomponents.github.io/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 14 / 45
It’s All Relative
Metaframework, CanopyTax
Single SPA
Runtime stitching of micro-frontends.
https://github.com/CanopyTax/single-spa
Example : https://single-spa.surge.sh/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 15 / 45
It’s All Relative
Microservice Websites, Gustaf Nilsson Kotte
Microservice Websites
Scalable development of an evolvable system with great mobile performance.
performance
autonomy ⇒ heterogeneity and scalability
Manifesto
Article
Tools:
Edge-Side Includes
Client-Side Includes
Caching (Varnish)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 16 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
Portlets (Liferay)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
Portlets (Liferay)
<iframe>
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
Web Components
Section 3
Web Components
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 18 / 45
Web Components
Web Components
Web Components
Reusable, modular components for the web.
4 W3C specifications
started in 2011
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 19 / 45
Web Components
Demo
Find this demo on CodePen
https://codepen.io/punkstarman/project/editor/AEKqQg
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 20 / 45
Web Components
Custom Elements
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 21 / 45
Web Components
It’s an HTML element
attributes
properties
events
styling
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 22 / 45
Web Components
Frameworks
Frameworks:
Polymer, SkateJS, Slim.js, x-tag, Bosonic, Stencil, …
React, Angular, Vue, …
https://custom-elements-everywhere.com/
Added bonuses:
two-way data-binding
boilerplate reduction
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 23 / 45
Web Components
Component libraries
https://www.webcomponents.org/
Polymer (iron, paper, app, gold)
Vaadin
Google (Maps, YouTube)
Predix UI
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 24 / 45
Web Components
Web Components in the Wild
Google (Polymer)
Chrome
YouTube, Drive, Contacts
Example app: Shop (https://shop.polymer-project.org/)
Electronic Arts
GitHub
Simpla
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 25 / 45
Atomic Design
Section 4
Atomic Design
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 26 / 45
Atomic Design
Atomic Design
Atomic Design
Methodology for creating and maintaining a graphic design system
Brad Frost, 2016
http://atomicdesign.bradfrost.com/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 27 / 45
Atomic Design
Atomic Design
atoms molecules organisms templates screens
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 28 / 45
Atomic Design
Atom
indivisible
graphical identity
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 29 / 45
Atomic Design
Molecule
connected atoms
purpose
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 30 / 45
Atomic Design
Organism
composed atoms, molecules or
other organisms
complexity
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 31 / 45
Atomic Design
Template
layout of organisms
generic page
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 32 / 45
Atomic Design
Page
template + data
proof of concept
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 33 / 45
Full-stack Microservices
Section 5
Full-stack Microservices
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 34 / 45
Full-stack Microservices
Microservices + Web Components
integration over HTTP
lazy loading
fault tolerance
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 35 / 45
Full-stack Microservices
Web Components + Atomic Design
Atomic Design is the methodology needed to develop a system of components efficiently.
Web Components are a solution that can enable Atomic Design.
DNF: integration components (AJAX, state)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 36 / 45
Full-stack Microservices
Full-stack Microservices
User
router
F
auth
FB
catalog
FB
order
FB
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 37 / 45
Full-stack Microservices
Full-stack Microservices
User
auth
FB
catalog
FB
order
FB
shared components
F
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 38 / 45
Full-stack Microservices
Full-stack Microservices
User
router
F
auth
FB
catalog
FB
order
FB
shared components
F
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 39 / 45
Full-stack Microservices
Full-stack Microservices
User
router
pages
service
templates, organisms, molecules
shared components
molecules, atoms
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 40 / 45
Case Study
Section 6
Case Study
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 41 / 45
O gods of Demo,
we beseach thee
Conclusion
Section 7
Conclusion
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 43 / 45
Conclusion
Conclusion
+ Autonomous teams
+ expose API and components
+ RAD
+ choice of framework
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 44 / 45
Conclusion
Conclusion
+ Autonomous teams
+ expose API and components
+ RAD
+ choice of framework
− strong coupling between API and UI
− library design > application design
− difficult to isolate dependencies
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 44 / 45
Conclusion
Future Work
Dependency and Configuration Injection
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
OAuth2 via Web Components: trust?
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
OAuth2 via Web Components: trust?
Logs, monitoring, instrumentation …
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45

More Related Content

PPTX
Why Is DITA So Hard?
PPTX
DITA for Small Teams
PDF
IoT Reference Architectures
PDF
Reactive Programming Meetup - NodeJs on K8s
PDF
Putting data science to work
PPTX
TechEvent DWH Modernization
PDF
Container-as-a-Service – Plattformunabhängige Datenbankbereitstellung in der ...
PPT
Project clearwater / matrix gateway by Matt Williams
Why Is DITA So Hard?
DITA for Small Teams
IoT Reference Architectures
Reactive Programming Meetup - NodeJs on K8s
Putting data science to work
TechEvent DWH Modernization
Container-as-a-Service – Plattformunabhängige Datenbankbereitstellung in der ...
Project clearwater / matrix gateway by Matt Williams

Similar to Fullstack Microservices (20)

PDF
Web analytics with R
PPTX
O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...
PDF
First_seminar_talk
PDF
On Contracts and Sandboxes for JavaScript
PDF
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
PPTX
Domain Specific Language generation based on a XML Schema.
PDF
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
PDF
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
PDF
Efficient Dynamic Access Analysis Using JavaScript Proxies
PDF
Tabnet presentation
PDF
Adding Realtime to your Projects
PDF
Catia product enhancement_overview_v5r20
PPTX
Ogi conf delft_v1_evangelos_kalampokis
PDF
35C3: EventFahrplan - Lightning Talk - Day 2
PPTX
Data Integration in a Big Data Context
PDF
LINEデリマでのElasticsearchの運用と監視の話
PDF
GraphQL Without a Database | Frontend Developer Love
PDF
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
PDF
5th Qatar BIM User Day, Live modeling techniques on a single project
PDF
Documenting serverless architectures could we do it better - o'reily sa con...
Web analytics with R
O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...
First_seminar_talk
On Contracts and Sandboxes for JavaScript
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Domain Specific Language generation based on a XML Schema.
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
Efficient Dynamic Access Analysis Using JavaScript Proxies
Tabnet presentation
Adding Realtime to your Projects
Catia product enhancement_overview_v5r20
Ogi conf delft_v1_evangelos_kalampokis
35C3: EventFahrplan - Lightning Talk - Day 2
Data Integration in a Big Data Context
LINEデリマでのElasticsearchの運用と監視の話
GraphQL Without a Database | Frontend Developer Love
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
5th Qatar BIM User Day, Live modeling techniques on a single project
Documenting serverless architectures could we do it better - o'reily sa con...
Ad

Recently uploaded (20)

PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Encapsulation theory and applications.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Cloud computing and distributed systems.
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPT
Teaching material agriculture food technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
DOCX
The AUB Centre for AI in Media Proposal.docx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Network Security Unit 5.pdf for BCA BBA.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Encapsulation theory and applications.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
The Rise and Fall of 3GPP – Time for a Sabbatical?
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Understanding_Digital_Forensics_Presentation.pptx
Cloud computing and distributed systems.
MIND Revenue Release Quarter 2 2025 Press Release
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Teaching material agriculture food technology
Reach Out and Touch Someone: Haptics and Empathic Computing
The AUB Centre for AI in Media Proposal.docx
Ad

Fullstack Microservices