SlideShare a Scribd company logo
1 of 18
inadarei
Rethinking Code
Reuse
Leveraging Microservices for Experimentation
Irakli Nadareishvili, Sr. Director, Capital One.
inadarei
inadarei
- Life’s Little Instruction Book,
H. Jackson Brown Jr.
inadarei
inadarei
inadarei
Manufacturers of such doors are trying to create a door that can be “pushed or pulled”
from both sides, so it’s reusable no matter how you install. Designing for unknown reuse - sounds familiar?
inadarei
11
Insisting on “Reuse” as an ultimate
goal leads to lowest common
denominator solutions
inadarei
Photo: P-51 Mustang of 361st Fighter Group, 1944. Wikipedia
No one is even
close to the
“normal” persona
based on average
of multitude of
characteristics.
inadarei
11
If you’re always trying to be normal, you
will never know how amazing you can be.
Maya Angelou (1924-2014)
”
inadarei
VS.
inadarei
CAUTION:
1. Advertising – Information propagation
2. Proper sun-setting of non-competitive
products.
inadarei
CAUTION:
1. Enforcing reuse can be just as costly.
2. Local cost is a bad optimizer. Only
overall Throughput matters.
3. Dependency (on a centralized
solution) has non-linear costs.
inadarei
inadarei
1. Ben Christensen:
“Standardize Protocols and Contracts” 1
2. Mike Amundsen:
“Share Vocabularies, not Data Models” 2
3. Reuse of widely-adopted services is usually fine.
1. https://www.youtube.com/watch?v=-czp0Y4Z36Y
2. https://twitter.com/mamund/status/767212233759657984?lang=en
3. https://medium.com/capital-one-developers/rule-of-twos-and-microservice-architecture-3f57db7f6896
inadarei
11
Microservice architecture is the
implementation of your system.
It is not the public API interface of your
system that external or most internal clients
should depend directly on.
11
Voice
Interface
Slack
Chatbot
Web/Mobile
App
inadarei
PARTING WORDS:

More Related Content

More from Nordic APIs

Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosNordic APIs
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioNordic APIs
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...Nordic APIs
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Nordic APIs
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...Nordic APIs
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyNordic APIs
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Nordic APIs
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsNordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Nordic APIs
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerNordic APIs
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...Nordic APIs
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...Nordic APIs
 
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMatic
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMaticcURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMatic
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMaticNordic APIs
 
Centralize Data Access Control with GraphQL - Andrew Carlson, Apollo
Centralize Data Access Control with GraphQL - Andrew Carlson, ApolloCentralize Data Access Control with GraphQL - Andrew Carlson, Apollo
Centralize Data Access Control with GraphQL - Andrew Carlson, ApolloNordic APIs
 
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42Crunch
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42CrunchSession Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42Crunch
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42CrunchNordic APIs
 
APIs at Scale with TypeSpec by Mandy Whaley, Microsoft
APIs at Scale with TypeSpec by Mandy Whaley, MicrosoftAPIs at Scale with TypeSpec by Mandy Whaley, Microsoft
APIs at Scale with TypeSpec by Mandy Whaley, MicrosoftNordic APIs
 
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...Standards, Standards, Everywhere… What Standards Really Mean In An API World ...
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...Nordic APIs
 
Future-proofing Authentication with Passkeys
Future-proofing Authentication with PasskeysFuture-proofing Authentication with Passkeys
Future-proofing Authentication with PasskeysNordic APIs
 
You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?Nordic APIs
 
Monitor Discourse via API using Grafana
Monitor Discourse via API using GrafanaMonitor Discourse via API using Grafana
Monitor Discourse via API using GrafanaNordic APIs
 

More from Nordic APIs (20)

Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, SipiosSecurely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Sipios
 
Security of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.ioSecurity of LLM APIs by Ankita Gupta, Akto.io
Security of LLM APIs by Ankita Gupta, Akto.io
 
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
I'm an API Hacker, Here's How to Go from Making APIs to Breaking Them - Katie...
 
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
Unleashing the Potential of GraphQL with Streaming Data - Kishore Banala, Net...
 
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
Reigniting the API Description Wars with TypeSpec and the Next Generation of...Reigniting the API Description Wars with TypeSpec and the Next Generation of...
Reigniting the API Description Wars with TypeSpec and the Next Generation of ...
 
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAnyEstablish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
Establish, Grow, and Mature Your API Platform - James Higginbotham, LaunchAny
 
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
Inclusive, Accessible Tech: Bias-Free Language in Code and Configurations - A...
 
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIsGoing Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
Going Platinum: How to Make a Hit API by Bill Doerrfeld, Nordic APIs
 
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
Getting Better at Risk Management Using Event Driven Mesh Architecture - Ragh...
 
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, GartnerGenAI: Producing and Consuming APIs by Paul Dumas, Gartner
GenAI: Producing and Consuming APIs by Paul Dumas, Gartner
 
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...The SAS developer portal –developer.sas.com 2.0: How we built it by Joe Furb...
The SAS developer portal – developer.sas.com 2.0: How we built it by Joe Furb...
 
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
How Netflix Uses Data Abstraction to Operate Services at Scale - Vidhya Arvin...
 
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMatic
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMaticcURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMatic
cURL to SDK: Navigating the API Adoption Chasm - Sidney Maestre, APIMatic
 
Centralize Data Access Control with GraphQL - Andrew Carlson, Apollo
Centralize Data Access Control with GraphQL - Andrew Carlson, ApolloCentralize Data Access Control with GraphQL - Andrew Carlson, Apollo
Centralize Data Access Control with GraphQL - Andrew Carlson, Apollo
 
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42Crunch
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42CrunchSession Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42Crunch
Session Slides: You’ve Had an API Breach, Now What? by Axel Grosse, 42Crunch
 
APIs at Scale with TypeSpec by Mandy Whaley, Microsoft
APIs at Scale with TypeSpec by Mandy Whaley, MicrosoftAPIs at Scale with TypeSpec by Mandy Whaley, Microsoft
APIs at Scale with TypeSpec by Mandy Whaley, Microsoft
 
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...Standards, Standards, Everywhere… What Standards Really Mean In An API World ...
Standards, Standards, Everywhere… What Standards Really Mean In An API World ...
 
Future-proofing Authentication with Passkeys
Future-proofing Authentication with PasskeysFuture-proofing Authentication with Passkeys
Future-proofing Authentication with Passkeys
 
You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?You Don't Need SDKs, Wait Maybe You Do?
You Don't Need SDKs, Wait Maybe You Do?
 
Monitor Discourse via API using Grafana
Monitor Discourse via API using GrafanaMonitor Discourse via API using Grafana
Monitor Discourse via API using Grafana
 

Recently uploaded

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 ...OnePlan Solutions
 
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-...Steffen Staab
 
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...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
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 GoalsJhone kinadey
 
+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
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
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.docxComplianceQuest1
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

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-...
 
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...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
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
 
+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...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
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
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

Fallacy of Assuming Reuse Equals Efficiency – Leveraging Microservices for Experimentation

Editor's Notes

  1. Let me tell you a little bit about myself. I work at Capital One, where I lead microservices transformation efforts. Microservices is an area that I am quite passionate about because it unites multiple other things I love: APIs, distributed systems, containers, organizational design and team culture. I have been building microservices for several years now and in 2016 we published a book about microservices, with several friends. Today I want to talk to you about one of the hotly debated topics in Microservices, which is – code reuse.
  2. You see, reusing code, reusing APIs has traditionally been viewed as the road to efficiency However, a lot of microservices practitioners actually question whether reuse is always a good idea, instead prioritizing replaceability and upgradeability, over reuse. This may feel like a fallacy to you, because the DRY principle of Don’t Repeat Yourself has been one of the supreme commandments of software engineering, ever since Andy Hunt and Dave Thomas published The Pragmatic Programmer book in 1999. A lot of things have changed since 1999, however. So please indulge me in going on a journey with you to explore whether reuse is always a good idea.
  3. Let’s start by discussing some design principles. How many of you have been confused by whether you should push or pull a specific door? Raise of hands, please! Well, I have very good news for you – it’s not you, it’s the doors. Specifically the badly designed doors often referred to as “Norman Doors”,named after the famous designer Dan Norman, who first identified the poor usability of everyday products in his classic book Design of Everyday Things. Specifically, the problem on the photo is that a door that is supposed to be pushed has a handle. Handles indicate pulling. These doors communicate false information about their capability.
  4. A proper ”push” door should have flat surface or a pushbar, making it clear that the ONLY thing you can do with such door is to push. There should be no confusion.
  5. Now, it’s too easy to assume that the designers of Norman Doors are just stupid. In reality it is not always the case. They didn't design the doors out of spite of human race, what they were probably trying to achieve was to manufacture a door that can be “pushed or pulled” from both sides, so it’s reusable no matter how you install it. This is designing for presumed reuse - sounds familiar? And yet it led to object so frustrating and useless that a famous designer wrote a book about it. Ouch! Photo credit: Sutterstock with proper license
  6. When you make reuse the ultimate goal, you will end-up designing for an average user and end-up creating lowest common denominator solutions.
  7. Sometimes designers call the averaged persona a “normal user” to make it sound better, but designing for such “normal” user is still very misleading and can even be life-threatening, as US Air Force learned the hard way in 1940s. They tried to design a cockpit of a fighter airplane based on averages. The results were devastating. The performance of top pilots became abysmal. See the problem was that no one is ‘normal’. Everybody is made up of a multitude of individual characteristics: height, weight, length of the hand, ratio of upper and lower body, feet length etc. Averages sortof work for single variable, but if you take an average across multiple characteristics, you won’t find any individual who is even close to the “normal”, in all respects. This is known as the ‘jaggedness principle - averaging across multiple variables doesnt work. When US Air Force designed the cockpits around average range of 10 body measurements across 4,000 pilots, they ended up with a design that didn’t fit well anybody. It was uncomfortable for EVERYBODY. Because they didnt take into account juggedness principle. They ended up inventing adjustable seats, which is why we also have them in our cars now.
  8. Remember Maya Angelou’s words: "If you’re always trying to be normal, you will never know how amazing you can be."
  9. Aside from problems with averaging, another issue is that reuse can kill innovation. If you always only have one choice – how do you foster innovation? A market with no competition doesn’t have enough motivational forces to produce high-quality products. On the photo we see a soviet soap. It’s extremelyuninspired, has no packaging but a protective paper and the only information on it is: the percentage of oily substances. You can compare it to how an example of a modern soap looks, created under fierce competition. Soviet soap photo: Shutterstock with proper license Soviet shield: wikipedia Dove bar: dove.com under Fair Use terms. https://www.dove.com/us/en/washing-and-bathing/beauty-bar/white-beauty-bar.html
  10. Now, if you decide to treat your API portfolio as a free market, you need to make sure that you have two crucial forces that are required for proper functioning of real markets: advertising and natural sun-setting of products. Advertising, while it may be annoying when you are watching your favorite TV show, is very important for informing consumers. You will have to create an internal developer evangelism function to make sure you properly mimic it.  Secondly, in free market bad products have natural way of dying – if nobody buys a product, it starves for resources and eventually disappears. In a corporation you can endlessly fund your APIs or tech products just by knowing and befriending the right people. So if you treat your APIs as products in a market, you need to make sure that the ones that do not get natural adoption will organically disappear, and won’t get funding.  If you don’t facilitate these two forces, encouraging duplication may not be appropriate for you.
  11. Hopefully we have given you a lot examples to convince you that reuse can be dangerous. However you are probably still asking yourself: “but isn’t duplication costly?” Doesn’t reuse save money? Well, not necessarily. First of all, enforcing reuse for every single thing can be extremely costly itself, and not worth it. Secondly, we know from manufacturing theory that if we are trying to optimize overall cost of a complex process, local cost is a bad optimizer. Only overall throughput matters. And lastly, reuse creates tight dependencies on different parts of your system. And those dependencies may create cost-saving initially, but over time their cost goes up exponentially. The cost of dependencies may eventually surpass any savings in reuse. 
  12. Next thing you may be worrying about is: security of letting just anybody implement crucial services. But in reality that’s not the case. Just having a free market of services doesn’t mean that every service comes from free market. Just like in real world, most of our products are market products but we also have government services and public goods that are subsidized. Every community makes their own decisions about what should be centralized and what should be in free market. Likewise, you have a lot of control in your organization to adjust these levers, but by default most of the services should be in “free market”, if you are doing it right. 
  13. Microservice architecture is the implementation of your system, it is not the public API interface of your system that external or most internal clients should depend directly on.
  14. We can visualize the relationship between public APIs and microservices with this conceputal diagram. Please excuse my drawing skills, I am obviously horrible at it :) It’s interesting that this kind of separation was used by various companies even before the term “microservices” was coined. Daniel Jacobson called it “ephemeral APIs” in 2013, to emphasize the changing nature of those APIs, focused on implementation rather than durable interface. In contrast, APIs that constitute public interface of the systems were called “experience APIs” at Netflix. Soundcloud, another early adopter of Microservices coined a different term to highlight this separation, there the experience APIs were called Backends for Frontends. <CLICK>
  15. In conclusion, we believe that reuse is neither inherently good or bad. It shouldn’t be a commandment of software engineering, but it should also not be outright rejected in all cases. The question of reuse or not is a very nuanced one and we should approach it with a careful consideration rather than a zealous pursuit.  Thank you very much!