@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

PPTX
Microservices architecture is it the right choice to design long-living syste...
PPTX
All our aggregates are wrong (ExploreDDD 2018)
PPTX
All our aggregates are wrong @ NDC Copenhagen 2019
PDF
Patrick Hopkins, Coca Cola Bottling Procurement Director on How Coke Streamli...
PPTX
The First Kilometre: Building a Back-End That Sets You Up For Success
PDF
Smarter Planet: Retail
PDF
Cross-channel retail, David Hogg, IBM
PDF
Moving away from legacy code with BDD
Microservices architecture is it the right choice to design long-living syste...
All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong @ NDC Copenhagen 2019
Patrick Hopkins, Coca Cola Bottling Procurement Director on How Coke Streamli...
The First Kilometre: Building a Back-End That Sets You Up For Success
Smarter Planet: Retail
Cross-channel retail, David Hogg, IBM
Moving away from legacy code with BDD

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

PPTX
Presentation at Logility Conference 2012
PDF
Erp study (Understand and select ERP)
PPT
Sears mdm lunch and learn attribute section final
PPTX
Overview of CIMM2 - A Unilog Product
PDF
Infosys – Order Management Supply Chain SRM
PDF
Achieving profitable to promise in distribution centric supply chain
PPTX
Managing retail outlets
PDF
Infosys – Order management | CRM & SRM Case Study | Solution
PDF
Moving away from legacy code (AgileCymru)
PDF
STRATEGIC USE OF MIS DRGORAD
PDF
[Webinar] High Speed Retail Analytics
PPT
Industrial marketing
PDF
Sage er px3-puerto rico
PPTX
Netsuite for Manufacturing Companies
PPT
Customer value and supply chain management
PPT
Group+b final+presentation wk5
PPT
Shopping
Presentation at Logility Conference 2012
Erp study (Understand and select ERP)
Sears mdm lunch and learn attribute section final
Overview of CIMM2 - A Unilog Product
Infosys – Order Management Supply Chain SRM
Achieving profitable to promise in distribution centric supply chain
Managing retail outlets
Infosys – Order management | CRM & SRM Case Study | Solution
Moving away from legacy code (AgileCymru)
STRATEGIC USE OF MIS DRGORAD
[Webinar] High Speed Retail Analytics
Industrial marketing
Sage er px3-puerto rico
Netsuite for Manufacturing Companies
Customer value and supply chain management
Group+b final+presentation wk5
Shopping
Ad

More from Mauro Servienti (20)

PPTX
Welcome to the (state) machine @ ExploreDDD 2019
PPTX
Designing a ui for microservices @ .NET Day Switzerland 2019
PPTX
Welcome to the (state) machine @ Xe One Day Enterprise Applications
PPTX
Be like water, my friend @ Agile for Innovation 2019
PPTX
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
PPTX
Living organizations, particular software @ do IT Better Parma
PPTX
Welcome to the (state) machine @ Crafted Software
PPTX
PO is dead, long live the PO - Italian Agile Day 2018
PPTX
Design a UI for your Microservices @ Do IT Better
PPTX
Designing a ui for microservices
PPTX
Po is dead, long live the po
PPTX
Shipping code is not the problem, deciding what to ship it is!
PPTX
GraphQL - Where are you from? Where are you going?
PPTX
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
PPTX
Progettare una UI per i Microservices
PPTX
The road to a Service Oriented Architecture is paved with messages
PPTX
La via verso SOA è lastricata di messaggi
PPTX
Implementare il single sign on con IdentityServer
PPTX
How we daily manage and work in a dispersed company: Particular Software
PPTX
From cogs to nirvana
Welcome to the (state) machine @ ExploreDDD 2019
Designing a ui for microservices @ .NET Day Switzerland 2019
Welcome to the (state) machine @ Xe One Day Enterprise Applications
Be like water, my friend @ Agile for Innovation 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Living organizations, particular software @ do IT Better Parma
Welcome to the (state) machine @ Crafted Software
PO is dead, long live the PO - Italian Agile Day 2018
Design a UI for your Microservices @ Do IT Better
Designing a ui for microservices
Po is dead, long live the po
Shipping code is not the problem, deciding what to ship it is!
GraphQL - Where are you from? Where are you going?
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Progettare una UI per i Microservices
The road to a Service Oriented Architecture is paved with messages
La via verso SOA è lastricata di messaggi
Implementare il single sign on con IdentityServer
How we daily manage and work in a dispersed company: Particular Software
From cogs to nirvana
Ad

Recently uploaded (20)

PDF
A review of recent deep learning applications in wood surface defect identifi...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPT
What is a Computer? Input Devices /output devices
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PPTX
Modernising the Digital Integration Hub
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPTX
Tartificialntelligence_presentation.pptx
PDF
August Patch Tuesday
PDF
Hybrid model detection and classification of lung cancer
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Architecture types and enterprise applications.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
A review of recent deep learning applications in wood surface defect identifi...
Developing a website for English-speaking practice to English as a foreign la...
What is a Computer? Input Devices /output devices
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Modernising the Digital Integration Hub
Chapter 5: Probability Theory and Statistics
Zenith AI: Advanced Artificial Intelligence
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Taming the Chaos: How to Turn Unstructured Data into Decisions
Final SEM Unit 1 for mit wpu at pune .pptx
Module 1.ppt Iot fundamentals and Architecture
Assigned Numbers - 2025 - Bluetooth® Document
Tartificialntelligence_presentation.pptx
August Patch Tuesday
Hybrid model detection and classification of lung cancer
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Architecture types and enterprise applications.pdf
Group 1 Presentation -Planning and Decision Making .pptx
CloudStack 4.21: First Look Webinar slides
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor

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

Editor's Notes

  • #3: 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…
  • #5: How is this thing designed?
  • #7: 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…
  • #8: Price cannot unexpectedly change while an item is in the cart
  • #11: Price cannot unexpectedly change while an item is in the cart
  • #23: distributed monolith
  • #27: 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/
  • #30: distributed monolith
  • #31: distributed monolith
  • #38: At Cart Item Add time
  • #41: Deploy time
  • #52: HTTP/WSDL remark : The fact that you add an HTTP or WSDL entry point into the code, doesn’t make it a service!
  • #53: Again, not technical, but look at it from a business perspective. What is the responsibility of a service?
  • #60: Sales conceptually own the shopping car concept
  • #61: Sales conceptually own the shopping car concept
  • #62: Sales conceptually own the shopping car concept
  • #63: Sales conceptually own the shopping car concept
  • #72: Since we have very low, if not zero, coupling across services.