SlideShare a Scribd company logo
@mauroservienti
microservices
and
pineapple on pizza
what do they have in common?
dos and don'ts
@mauroservienti
All I wanna do
when I wake up in
the morning is…
Rosanna, Toto. Toto IV
@mauroservienti
Buy a "Banana Protector"
@mauroservienti
Buy a "Banana Protector"
@mauroservienti
Shopping Cart Microservice
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
@mauroservienti
please, welcome the
business
@mauroservienti
Business requirements (#1)
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
Products
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
Products
copy
@mauroservienti
Business requirements (#2)
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
copy
copy
@mauroservienti
Business requirements (#3)
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
@mauroservienti
Products & Shopping Cart Microservices
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Update XYZ Price
@mauroservienti
service
boundaries
violation
@mauroservienti
Products Microservices
- Item ID
- Price
- Inventory
Products
@mauroservienti
ownership
is lost
@mauroservienti
Suppliers & Products & Shopping Cart
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
- Supplier ID
- Item ID
- Purchase Price
Suppliers
Update XYZ Price
Are we selling?
New Purchase Price
@mauroservienti
autonomy?
puff, it’s gone
@mauroservienti
HTTP all the rage
because it’s the microservices way
@mauroservienti
Suppliers & Products & Shopping Cart
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
- Supplier ID
- Item ID
- Purchase Price
Suppliers
Update XYZ Price
Are we selling?
New Purchase Price
@mauroservienti
“the microservices way”
Shopping CartProducts
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Suppliers Update XYZ Price
Are we selling?
New Purchase Price
• Incoming “external” HTTP Post
• HTTP Query from Suppliers to Products
• HTTP Post from Suppliers to Products
• HTTP Query from Products to Shopping Cart
• HTTP Post from Products to Shopping Cart
@mauroservienti
Hops 1 2 3 4 10
Latency 100ms 200ms 300ms 400ms 1 second
“the microservices way”
Does not count any processing time!
…
@mauroservienti
Latency Matters
http://highscalability.com/blog/2009/7/25/latency-is-everywhere-and-it-costs-you-sales-how-to-crush-it.html
Amazon found every 100ms of latency cost
them 1% in sales. Google found an extra .5
seconds in search page generation time
dropped traffic by 20%. A broker could lose $4
million in revenues per millisecond if their
electronic trading platform is 5 milliseconds
behind the competition.
“
@mauroservienti
The snowball effect
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
- Supplier ID
- Item ID
- Purchase Price
Suppliers
Update XYZ Price
Are we selling?
New Purchase Price Ooops...
@mauroservienti
temporal
coupling
anyone?
@mauroservienti
distributed
transactions
over HTTP
@mauroservienti
@mauroservienti
Messaging
temporal coupling and
distributed transactions
@mauroservienti
The snowball effect
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
- Supplier ID
- Item ID
- Purchase Price
Suppliers
Update XYZ Price
Are we selling?
New Purchase Price Ooops...
@mauroservienti
The snowball effect
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
- Supplier ID
- Item ID
- Purchase Price
Suppliers
New Purchase Price
+ new price details
Business
Logic
Purchase Price Changed
+ new price details
Business
Logic
Sell Price Changed
MovetoSavedfor…
@mauroservienti
The snowball effect
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
+ new price details
Business
Logic
Sell Price Changed
MovetoSavedfor…
Ooops...
@mauroservienti
palliative
alleviates the symptoms
@mauroservienti
Queries are still a thing: Add item to cart.
[ list-of ]
- Item ID
- Price
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
copy price
copy inventory
@mauroservienti
Data sharing is still a thing
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
+ new price details
Business
Logic
Sell Price Changed
MovetoSavedfor…
@mauroservienti
We’re flooding the system…
Shopping CartProducts
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Is item XYZ in a cart?
Swap & Insert Prices
Move to Saved for…
Is item XYZ in a cart?
Update XYZ inventory
Update XYZ Price
Update XYZ Inventory
Over and over, and over, and over…
@mauroservientihttp://montages.no/2009/09/begrepet-grafisk-likhet/
@mauroservienti
@mauroservienti
User mental model is misleading
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
Shopping Cart
- Item ID
- Price
- Inventory
Products
- Supplier ID
- Item ID
- Purchase Price
Suppliers
@mauroservienti
Let’s focus on the Shopping Cart
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
- Inventory
- Name
- Description
- Etc…
Shopping Cart
@mauroservienti
Sales shopping cart
[ list-of ]
- Item ID
- Quantity
- Inventory
- Name
- Description
- Delivery Est.
Shopping Cart
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
@mauroservienti
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
Warehouse shopping cart
[ list-of ]
- Item ID
- Quantity
- Name
- Description
- Delivery Est.
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
@mauroservienti
Shipping shopping cart
[ list-of ]
- Item ID
- Quantity
- Name
- Description
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
@mauroservienti
Marketing tends to be stable
[ list-of ]
- Item ID
- Quantity
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
@mauroservienti
Do we need the Shopping Cart at all?
[ list-of ]
- Item ID
- Quantity
Shopping Cart
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
@mauroservienti
Can Sales be responsible for that concept?
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
Cart ID
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
@mauroservienti
We followed the coupling
[ list-of ]
- Cart ID
- Item ID
- Quantity
- Delivery Est.
- Item ID
- Price
- Item ID
- Name
- Description
Marketing
Sales
Cart ID
[ list-of ]
- Item ID
- CurrentPrice
- LastPrice
- Quantity
[ list-of ]
- Cart ID
- Item ID
- Inventory
- Quantity
Warehouse
- Item ID
- Inventory
- Item ID
- Delivery
Type
Shipping
@mauroservienti
What a (micro)service is not
• A service that has only functionality is a function:
• Like calculation, validation, etc.
• A service that has only data is a database:
• Like [create, read, update, delete] entity
• HTTP/WSDL doesn’t change logical responsibility
@mauroservienti
What a (micro)service is
the technical authority
for a specific business
capability
All business rules (& data) reside within the service
@mauroservienti
Full Vertical Slices
MarketingSales Warehouse Shipping
behavior & databehavior & data behavior & databehavior & data
@mauroservienti
Full Vertical Slices
MarketingSales Warehouse Shipping
behavior & databehavior & data behavior & databehavior & data
UI & ViewModel
Composition
UI & ViewModel
Composition
UI & ViewModel
Composition
UI & ViewModel
Composition
@mauroservienti
Full Vertical Slices
MarketingSales Warehouse Shipping
behavior & databehavior & data behavior & databehavior & data
UI & ViewModel
Composition
UI & ViewModel
Composition
UI & ViewModel
Composition
UI & ViewModel
Composition
Dedicated
Technology / FX
Dedicated
Technology / FX
Dedicated
Technology / FX
Dedicated
Technology / FX
@mauroservienti
@mauroservienti
services need to
communicate
@mauroservienti
Business requirements (#4)
• Annoy Notify users of 1 week stale carts
• Wipe 1 month stale carts
@mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & databehavior & data behavior & databehavior & data
ViewModel Composition ViewModel Composition ViewModel CompositionViewModel Composition
@mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
@mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
@mauroservienti
Services communication channel
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
@mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
Cart Got Stale
@mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
busCart Got Stale
@mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus Cart Got Stale
@mauroservienti
1 week later
MarketingSales Warehouse Shipping
behavior & data
behavior & data behavior & data
behavior & data
ViewModel Composition
ViewModel Composition ViewModel Composition
ViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Notify User
Cart Got Stale
@mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Cart Expired
@mauroservienti
busCart Expired
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
Cart Expired
@mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & data
behavior & data
behavior & databehavior & data
ViewModel Composition
ViewModel Composition ViewModel CompositionViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
busCart Expired Cart Expired
@mauroservienti
1 month later
MarketingSales Warehouse Shipping
behavior & databehavior & data
behavior & data
behavior & data
ViewModel Composition ViewModel Composition ViewModel Composition
ViewModel Composition
Add Item to Cart
1. Set 1 week timeout
2. Set 1 month timeout
bus
Wipe cart Wipe cart
Cart Expired Cart Expired
@mauroservienti
cross services events
can be as thin as
event name and identifiers
@mauroservienti
time tyranny
Demo
bit.ly/aperitech-dos-donts
@mauroservienti
Takeaways
• Boundaries are key to success
• Do not bring in more technology to solve non-
technical problems
@mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Users/Business analysts tend to think in term
of data presentation
@mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Premature names stick and drive data
aggregation
@mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Behaviors define how to aggregate data
• Group data that change together and that influence each
other
• Use anti-requirements techniques to validate data
grouping
• Follow the coupling
@mauroservienti
Takeaways
• Boundaries are key to success
• Mental model can badly influence design
• Do not name things prematurely
• Behaviors define how to aggregate data
• Use messaging to temporally decouple services
@mauroservienti
you don’t need a distributed system
first rule of distributed systems
@mauroservienti
Mauro Servienti
Solution Architect @ Particular Software
the makers of NServiceBus
mauro.servienti@particular.net
@mauroservienti
//milestone.topics.it
@mauroservienti
microservices
pineapple on
pizza sucks… ;)
@mauroservienti
Thank you!

More Related Content

Similar to Microservices and pineapple on pizza what do they have in common - dos and don'ts

Sell your products on TYGA mall
Sell your products on TYGA mallSell your products on TYGA mall
Sell your products on TYGA mall
Julien Louage
 
FIFO Inventory Valuation in Odoo 13
FIFO Inventory Valuation in Odoo 13FIFO Inventory Valuation in Odoo 13
FIFO Inventory Valuation in Odoo 13
Varsha Technaureus
 
Sales report
Sales reportSales report
Sales report
Paytm
 
Chapter 3 - An Introduction to Demand and Supply.ppt
Chapter 3 - An Introduction to Demand and Supply.pptChapter 3 - An Introduction to Demand and Supply.ppt
Chapter 3 - An Introduction to Demand and Supply.ppt
ChelseaAnneVidallo
 
Sales report
Sales reportSales report
Sales report
Paytm
 
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
Heroes of CRM Conference
 
Law of Supply and Demand
Law of Supply and DemandLaw of Supply and Demand
Law of Supply and Demand
Dr. C.V. Suresh Babu
 
Day 1: 2016 Google Shopping Virtual Summit
Day 1: 2016 Google Shopping Virtual SummitDay 1: 2016 Google Shopping Virtual Summit
Day 1: 2016 Google Shopping Virtual Summit
Tinuiti
 
CPC Strategy - Google Shopping Virtual summit 2016
CPC Strategy -  Google Shopping Virtual summit 2016 CPC Strategy -  Google Shopping Virtual summit 2016
CPC Strategy - Google Shopping Virtual summit 2016
Duy, Vo Hoang
 
Workshop mongo aggregations [musescodejs 16.11.19]
Workshop  mongo aggregations [musescodejs 16.11.19]Workshop  mongo aggregations [musescodejs 16.11.19]
Workshop mongo aggregations [musescodejs 16.11.19]
Mikhail Asavkin
 
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
Price Intelligently
 
Mdia 4015 final exam test prep
Mdia 4015 final exam test prepMdia 4015 final exam test prep
Mdia 4015 final exam test prep
evanmitsui
 
Supply SFLS
Supply SFLSSupply SFLS
Supply SFLS
ianhorner3
 
1a. the 4 ps of marketing
 1a. the 4 ps of marketing 1a. the 4 ps of marketing
1a. the 4 ps of marketing
Harshruti
 
Marketing jeopardy
Marketing jeopardyMarketing jeopardy
Marketing jeopardy
Mark
 
How to Design Retail Recommendation Engines with Neo4j
How to Design Retail Recommendation Engines with Neo4jHow to Design Retail Recommendation Engines with Neo4j
How to Design Retail Recommendation Engines with Neo4j
Neo4j
 
Scm report
Scm reportScm report
Scm report
Aishwarya Alagh
 
Demand and Supply Analysis (Economics) Lecture Notes
Demand and Supply Analysis (Economics) Lecture NotesDemand and Supply Analysis (Economics) Lecture Notes
Demand and Supply Analysis (Economics) Lecture Notes
FellowBuddy.com
 
Enhancing the User Experience
Enhancing the User ExperienceEnhancing the User Experience
Enhancing the User Experience
Muhammad Sajid
 
Driving Serious Sales Using Browser Notifications | iZooto
Driving Serious Sales Using Browser Notifications | iZooto Driving Serious Sales Using Browser Notifications | iZooto
Driving Serious Sales Using Browser Notifications | iZooto
Vivek Khandelwal
 

Similar to Microservices and pineapple on pizza what do they have in common - dos and don'ts (20)

Sell your products on TYGA mall
Sell your products on TYGA mallSell your products on TYGA mall
Sell your products on TYGA mall
 
FIFO Inventory Valuation in Odoo 13
FIFO Inventory Valuation in Odoo 13FIFO Inventory Valuation in Odoo 13
FIFO Inventory Valuation in Odoo 13
 
Sales report
Sales reportSales report
Sales report
 
Chapter 3 - An Introduction to Demand and Supply.ppt
Chapter 3 - An Introduction to Demand and Supply.pptChapter 3 - An Introduction to Demand and Supply.ppt
Chapter 3 - An Introduction to Demand and Supply.ppt
 
Sales report
Sales reportSales report
Sales report
 
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
Saskia Demel / Michael Munder: How to Kick-Start Your CRM With Clickstream Da...
 
Law of Supply and Demand
Law of Supply and DemandLaw of Supply and Demand
Law of Supply and Demand
 
Day 1: 2016 Google Shopping Virtual Summit
Day 1: 2016 Google Shopping Virtual SummitDay 1: 2016 Google Shopping Virtual Summit
Day 1: 2016 Google Shopping Virtual Summit
 
CPC Strategy - Google Shopping Virtual summit 2016
CPC Strategy -  Google Shopping Virtual summit 2016 CPC Strategy -  Google Shopping Virtual summit 2016
CPC Strategy - Google Shopping Virtual summit 2016
 
Workshop mongo aggregations [musescodejs 16.11.19]
Workshop  mongo aggregations [musescodejs 16.11.19]Workshop  mongo aggregations [musescodejs 16.11.19]
Workshop mongo aggregations [musescodejs 16.11.19]
 
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
SaaSFest 2015 - "Monetization Matters" by Patrick Campbell of Price Intellige...
 
Mdia 4015 final exam test prep
Mdia 4015 final exam test prepMdia 4015 final exam test prep
Mdia 4015 final exam test prep
 
Supply SFLS
Supply SFLSSupply SFLS
Supply SFLS
 
1a. the 4 ps of marketing
 1a. the 4 ps of marketing 1a. the 4 ps of marketing
1a. the 4 ps of marketing
 
Marketing jeopardy
Marketing jeopardyMarketing jeopardy
Marketing jeopardy
 
How to Design Retail Recommendation Engines with Neo4j
How to Design Retail Recommendation Engines with Neo4jHow to Design Retail Recommendation Engines with Neo4j
How to Design Retail Recommendation Engines with Neo4j
 
Scm report
Scm reportScm report
Scm report
 
Demand and Supply Analysis (Economics) Lecture Notes
Demand and Supply Analysis (Economics) Lecture NotesDemand and Supply Analysis (Economics) Lecture Notes
Demand and Supply Analysis (Economics) Lecture Notes
 
Enhancing the User Experience
Enhancing the User ExperienceEnhancing the User Experience
Enhancing the User Experience
 
Driving Serious Sales Using Browser Notifications | iZooto
Driving Serious Sales Using Browser Notifications | iZooto Driving Serious Sales Using Browser Notifications | iZooto
Driving Serious Sales Using Browser Notifications | iZooto
 

More from Mauro Servienti

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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
Design a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT BetterDesign a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT Better
Mauro Servienti
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
Mauro Servienti
 
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
Mauro Servienti
 
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!
Mauro Servienti
 
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?
Mauro Servienti
 
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
Mauro Servienti
 
Progettare una UI per i Microservices
Progettare una UI per i MicroservicesProgettare una UI per i Microservices
Progettare una UI per i Microservices
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
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
Mauro Servienti
 
From cogs to nirvana
From cogs to nirvanaFrom cogs to nirvana
From cogs to nirvana
Mauro Servienti
 

More from 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
 
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
 
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
 
Design a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT BetterDesign a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT Better
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
 
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
 
Progettare una UI per i Microservices
Progettare una UI per i MicroservicesProgettare una UI per i Microservices
Progettare una UI per i Microservices
 
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
 
From cogs to nirvana
From cogs to nirvanaFrom cogs to nirvana
From cogs to nirvana
 

Recently uploaded

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 

Recently uploaded (20)

Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 

Microservices and pineapple on pizza what do they have in common - dos and don'ts

Editor's Notes

  1. I’m a remote worker We live in a small flat, thus I have a small office I enjoy going to the office by bike And I enjoy bananas for my breaks Bike riding and bananas in the backpack are not a great idea, so…
  2. How is this thing designed?
  3. I’m a remote worker I enjoy going to work by bike And I enjoy bananas as lunch breaks Bike riding and bananas in the backpack are not a great idea, so…
  4. Price cannot unexpectedly change while an item is in the cart
  5. Price cannot unexpectedly change while an item is in the cart
  6. distributed monolith
  7. Amazon found every 100ms of latency cost them 1% in sales https://blog.gigaspaces.com/amazon-found-every-100ms-of-latency-cost-them-1-in-sales/
  8. distributed monolith
  9. distributed monolith
  10. At Cart Item Add time
  11. Deploy time
  12. HTTP/WSDL remark : The fact that you add an HTTP or WSDL entry point into the code, doesn’t make it a service!
  13. Again, not technical, but look at it from a business perspective. What is the responsibility of a service?
  14. Sales conceptually own the shopping car concept
  15. Sales conceptually own the shopping car concept
  16. Sales conceptually own the shopping car concept
  17. Sales conceptually own the shopping car concept
  18. Since we have very low, if not zero, coupling across services.