SlideShare una empresa de Scribd logo
1 de 36
@mauroservienti
Designing a UI for
Microservices​​​​​
Mauro Servienti
@mauroservienti
All I want to do when I wake up in the
morning is...
(cit. Rosanna, Toto, Toto IV)
@mauroservienti
Buy a "Banana holder"
@mauroservienti
Does a page like that exist?
Or put it in another way, does a “Product” class or aggregate exist?
@mauroservienti
No, it doesn’t
Sales
Warehouse
Shipping
Publishing
Marketing
@mauroservienti
Domain Model Decomposition
(micro)services
owning their own
piece of information.
Single Responsibility Principle
@mauroservienti
Mauro Servienti
Solution Architect @ Particular Software
mauro.servienti @ particular.net
//milestone.topics.it
@mauroservienti
@mauroservienti
Hold on...
What about the poor user?
Solution mode is evil!
@mauroservienti
Denormalization
Marketing Sales Shipping Warehouse Publishing
De-normalized API
Client
“Product”
@mauroservienti
What's the deal?
• It's a cache
•with no clear ownership
•with infrastructure maintenance cost
•with no easy way to (partially) invalidate it
• It’s the truth from the user perspective
•When scaled out instances need to be kept in sync
@mauroservienti
How to fulfill it?
• Pushing is not a solution
•At read time data are always in an unknown state
• Pulling is not a solution either
•Batch jobs, that can fail
•Unknown state is still an issue at read time
•Multiple owners competing on a single resource
@mauroservienti
Oh…and by the way…
@mauroservienti
Oh…and by the way…
@mauroservienti
What is the real problem?
Back to the drawing board
@mauroservienti
It's a reporting and
integration issue.
That’s a bold statement ;-)
@mauroservienti
Reporting and integration
•We're crossing a “boundary”
•Data flow out of each service to the user
•User is already pulling things on demand
•let's benefit of that
@mauroservienti
ViewModel Composition
/products/
Marketing Sales Shipping Warehouse Publishing
Client
PKPKPKPKPK
1
@mauroservienti
Demo
ViewModel Composition
Single item gateway demo
@mauroservienti
Recap
•Responsibilities and ownership are clearly
defined
•Each service can cache using different strategies
•We can easily handle:
•Optional information
•Failures
•Sample is .NET Core: other options are available
@mauroservienti
What about grids?
@mauroservienti
What about grids?
@mauroservienti
View
model/products/1
ProductNameA
€ 20.00
cover
image
A
Supplier A
ProductNameB
€ 20.00
cover
image
B
Supplier B
ProductNameC
€ 20.00
cover
image
C
Supplier C
ProductNameD
€ 20.00
cover
image
D
Supplier D
@mauroservienti
Component from
product-catalog
View
model
Component from
product-catalog
/products/1
ProductNameA
€ 20.00
cover
image
A
Supplier A
ProductNameB
€ 20.00
cover
image
B
Supplier B
ProductNameC
€ 20.00
cover
image
C
Supplier C
ProductNameD
€ 20.00
cover
image
D
Supplier D
load related
products
@mauroservienti
client-side message broker
Component from
product-catalog
Component from
sales
Component from
marketing
View
model
Component from
product-catalog
Component from
sales
Component from
marketing
ProductNameA
€ 20.00
cover
image
A
Supplier A
ProductNameB
€ 20.00
cover
image
B
Supplier B
ProductNameC
€ 20.00
cover
image
C
Supplier C
ProductNameD
€ 20.00
cover
image
D
Supplier D
publish `RelatedProductsFound`
load related
products
receive event
/products/1
@mauroservienti
Component from
product-catalog
Component from
sales
Component from
marketing
View
model
Component from
product-catalog
Component from
sales
Component from
marketing
ProductNameA
€ 20.00
cover
image
A
Supplier A
ProductNameB
€ 20.00
cover
image
B
Supplier B
ProductNameC
€ 20.00
cover
image
C
Supplier C
ProductNameD
€ 20.00
cover
image
D
Supplier D
load related
products
/products/1
@mauroservienti
Demo
ViewModel Composition
Grid/list gateway demo
@mauroservienti
Recap
•One service owns the “ID list”
•Select N+1 is not (anymore) a concern
•# of requests will be “# of services”
•Or in worst case “# of services + 1”
•For SPA or devices we’re done :-)
•Or any remote client
@mauroservienti
Hurry up, take a picture ;-)
http://go.particular.net/meetcast17
Apply systems design with microservices
Get free access to lessons about services boundaries
from the Advanced Distributed Systems Design course
by Udi Dahan
@mauroservienti
Please welcome Branding
@mauroservienti
Branding
•Defines the reporting/UI contract
•It's the technical authority owing the UI contract
•Services that want to display data must adhere
@mauroservienti
Demo
ViewModel Composition
MVC Hosting and Branding demo
@mauroservienti
Recap
•Composition engine MVC hosted
•UI structure is defined as a “monolith”
•Branding owns the UI structure
•the case when business drives all changes
•Interfaces can replace dynamic ViewModels
@mauroservienti
Branding is a tradeoff
What if we’re not an Amazon-like thing?
@mauroservienti
Demo
UI Composition
MVC ViewComponents demo
@mauroservienti
Recap
•Composition engine is still the same
•UI defines only high level structure
•Branding is less important
•The more “magic” the less Branding
•Services own the whole vertical slice
@mauroservienti
Thank you!
That’s all, folks.
Demos: //github.com/mauroservienti/designing-a-ui-for-microservices-demos

Más contenido relacionado

Similar a Progettare una UI per i Microservices

Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, Obecto
beITconference
 
Harness the power of wordpress
Harness the power of wordpressHarness the power of wordpress
Harness the power of wordpress
Justin Ferrell
 

Similar a Progettare una UI per i Microservices (20)

MmIT webinar 2018 - Essential tools and technologies for the library and info...
MmIT webinar 2018 - Essential tools and technologies for the library and info...MmIT webinar 2018 - Essential tools and technologies for the library and info...
MmIT webinar 2018 - Essential tools and technologies for the library and info...
 
Level III Variant Configuration @ Shoubii
Level III   Variant Configuration @ ShoubiiLevel III   Variant Configuration @ Shoubii
Level III Variant Configuration @ Shoubii
 
The product is not "the product". Who owns it anyway?
The product is not "the product". Who owns it anyway? The product is not "the product". Who owns it anyway?
The product is not "the product". Who owns it anyway?
 
Adaptive Content equals Architecture plus Process minus Reality [Noz Urbina, ...
Adaptive Content equals Architecture plus Process minus Reality [Noz Urbina, ...Adaptive Content equals Architecture plus Process minus Reality [Noz Urbina, ...
Adaptive Content equals Architecture plus Process minus Reality [Noz Urbina, ...
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with libraries
 
Testing as a Service Model
Testing as a Service ModelTesting as a Service Model
Testing as a Service Model
 
Nuevos Modelos De Negocio en Las Industrias Culturales. 2º Taller Ciclo de Ge...
Nuevos Modelos De Negocio en Las Industrias Culturales. 2º Taller Ciclo de Ge...Nuevos Modelos De Negocio en Las Industrias Culturales. 2º Taller Ciclo de Ge...
Nuevos Modelos De Negocio en Las Industrias Culturales. 2º Taller Ciclo de Ge...
 
Does Web 2.0 herald the end of in-house development and provision of IT servi...
Does Web 2.0 herald the end of in-house development and provision of IT servi...Does Web 2.0 herald the end of in-house development and provision of IT servi...
Does Web 2.0 herald the end of in-house development and provision of IT servi...
 
Mobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, ObectoMobile First with Angular.JS - Владимир Цветков, Obecto
Mobile First with Angular.JS - Владимир Цветков, Obecto
 
Alex Podopryhora - Selling across multiple channels made easy
Alex Podopryhora - Selling across multiple channels made easyAlex Podopryhora - Selling across multiple channels made easy
Alex Podopryhora - Selling across multiple channels made easy
 
How to empower developers to build a greater user experience
How to empower developers to build a greater user experienceHow to empower developers to build a greater user experience
How to empower developers to build a greater user experience
 
Harness the power of wordpress
Harness the power of wordpressHarness the power of wordpress
Harness the power of wordpress
 
Why entity forms?
Why entity forms?Why entity forms?
Why entity forms?
 
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
Axel Hafner - MakerBot Europe - European Market Entry - Stanford Engineering ...
 
Pres why entity_forms_italo_mairo_drupal_days_milano_8_may_2014
Pres why entity_forms_italo_mairo_drupal_days_milano_8_may_2014Pres why entity_forms_italo_mairo_drupal_days_milano_8_may_2014
Pres why entity_forms_italo_mairo_drupal_days_milano_8_may_2014
 
How to improve ROI for your B2B Website
How to improve ROI for your B2B WebsiteHow to improve ROI for your B2B Website
How to improve ROI for your B2B Website
 
Sell your code: Announcing the DroopyAppStore
Sell your code: Announcing the DroopyAppStoreSell your code: Announcing the DroopyAppStore
Sell your code: Announcing the DroopyAppStore
 
Tienda Development Workshop - JAB11
Tienda Development Workshop - JAB11Tienda Development Workshop - JAB11
Tienda Development Workshop - JAB11
 
Making Steaks from Sacred Cows
Making Steaks from Sacred CowsMaking Steaks from Sacred Cows
Making Steaks from Sacred Cows
 
Crisis Times. Turn Joomla into a job opportunity.
Crisis Times. Turn Joomla into a job opportunity. Crisis Times. Turn Joomla into a job opportunity.
Crisis Times. Turn Joomla into a job opportunity.
 

Más de Mauro Servienti

Más de Mauro Servienti (20)

Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019
 
Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019
 
Welcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsWelcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise Applications
 
All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019
 
Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019
 
Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...
 
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
 
Living organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better ParmaLiving organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better Parma
 
Welcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted SoftwareWelcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted Software
 
PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018
 
Microservices and pineapple on pizza what do they have in common - dos and ...
Microservices and pineapple on pizza   what do they have in common - dos and ...Microservices and pineapple on pizza   what do they have in common - dos and ...
Microservices and pineapple on pizza what do they have in common - dos and ...
 
All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)
 
Po is dead, long live the po
Po is dead, long live the poPo is dead, long live the po
Po is dead, long live the po
 
Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!
 
GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?
 
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Dall'idea al deploy   un lungo viaggio che passa per git flow e semverDall'idea al deploy   un lungo viaggio che passa per git flow e semver
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
 
The road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messagesThe road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messages
 
La via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggiLa via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggi
 
Implementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServerImplementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServer
 
How we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular SoftwareHow we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular Software
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Último (20)

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Progettare una UI per i Microservices

Notas del editor

  1. While showing ownership in overlay....Lots of components, or in SOA lingo services, each one owing different data. Otherwise it's a clear violation of responsibilities.
  2. It's very tempting to design a technical solution
  3. ViewModel Composition is not UI Composition