SlideShare a Scribd company logo
1 of 22
Scaling API Design 
Jason Harmon, Head of API Design 
November 2014 
© 2014 PayPal Inc. All rights reserved.
About me 
Scaling API Design 
Jason Harmon 
• Leads API design at Paypal 
• Design phase of the “PPaaS” aka “Paypal as a Service" program 
• Engineering-wide initiative 
• Collaborate on designs for all internal/external/partner/whatever APIs 
• Maintain style/standards 
• Stakeholder for internal developer portal & tools teams 
• Internal API design training/evangelism 
@jharmn 
Jasonh-n-austin 
© 2014 PayPal Inc. All rights reserved. 2
Let’s think big 
What if your startup takes off? 
© 2014 PayPal Inc. All rights reserved. 3
Breaking down the monolith 
Distributed architecture 
Define uniform interfaces 
Allow for scaling per capability 
Increase team autonomy 
Discoverability is hard in big systems 
© 2014 PayPal Inc. All rights reserved. 4
Portfolio 
Think about the big picture 
© 2014 PayPal Inc. All rights reserved. 5
Organizing your APIs 
Portfolio 
Respect customer language 
Inverse Conway’s Maneuver 
“Organizations which design systems are 
constrained to produce designs which are 
copies of the communication structures of 
these organizations.” 
• Don’t design your APIs to reflect 
your systems or organizations 
• Make your software look like your 
customers see you 
http://www.thoughtworks.com/radar/techniques 
© 2014 PayPal Inc. All rights reserved. 6
Business decides, developers implement 
Portfolio 
Business 
Identify capabilities 
Sometimes a capability is a resource collection (not always) 
Level 1 Categories + Package/Spec/Level 2 
Developers 
Use ‘namespaces’ to designate functional areas: 
• /v1/factory/widgets 
• Not always the same as capabilities/packages 
URIs relay data relationships 
© 2014 PayPal Inc. All rights reserved. 7
Organizing your APIs 
Portfolio 
Group operations by goals/usage 
API Product Managers can be helpful 
Start with capabilities, not resources 
Discoverability via dev portals 
• Internal 
• External 
• Partner 
Use caution with product names for capabilities 
© 2014 PayPal Inc. All rights reserved. 8
Design first 
Right after portfolio 
© 2014 PayPal Inc. All rights reserved. 9
Building backend is expensive 
Design first 
Break changes early, before you build it 
Specification formats 
• Swagger, RAML, Blueprint: whatever suits you 
• Portal/Docs/Reference 
• Codegen server/client/SDK 
• Mocking 
• Consistency Validation 
Get API client feedback on mock APIs 
• Real usability is only measurable with tactile feedback 
• Weakness: multi-scenario and errors are hard to mock 
© 2014 PayPal Inc. All rights reserved. 10
Design first: Parallelize 
© 2014 PayPal Inc. All rights reserved. 11
Fundamentals 
Core elements of API design 
© 2014 PayPal Inc. All rights reserved. 12
Be the client advocate 
Objectivity 
The best API designs come from outside the delivery team 
Make the server’s job hard, so all the client’s are easier 
Design without implementation constraints as a first concern 
Don’t take a tour in the hot dog factory 
© 2014 PayPal Inc. All rights reserved. 13
Long live v1! 
Sustainability 
Rapid iteration/fundamental changes are off-limits 
•Rule #1 of API versioning: try not to 
•There are no extensible API designs 
Can we grow this design without starting over? 
Hide implementation details 
• Today’s backend is tomorrow’s scrap heap 
•Watch out for implementation details in errors 
Add URIs, deprecate URIs 
• Design iterations are usually new resources 
APIUX: http://apiux.com/2014/09/05/api-design-sustainability 
© 2014 PayPal Inc. All rights reserved. 14
Nouns matter 
Usability 
http://softexpert.files.wordpress.com/2007/10/526604 
Resource oriented 
Avoid RPC unless you can rationalize 
optimized DX 
Understandable terminology 
• Use industry-standard terminology where 
possible 
• Avoid vague terms: 
• Metadata 
• Context 
86_6ca085f7a8.jpg?w=780 
© 2014 PayPal Inc. All rights reserved. 15
One API call is not enough 
Usability 
Get your flow on 
Capture current and future use cases 
Identify goals 
• Analyze chain of calls and identifiers 
required to reach goal 
REST != CRUD 
• Think beyond data structures, think 
resources 
• Resources should quickly reach client 
goals without excessive complexity 
© 2014 PayPal Inc. All rights reserved. 16
Design scale, not system scale…or both 
Scalability 
The Goldilocks principle 
Be smart about “just right” sized resources 
Big resources can be a problem 
• System overload/performance issues 
• Coupling concerns 
• Long, unreliable HTTP connections 
• Bandwidth overhead 
• Complexity! 
Tiny resources can be just as bad 
• N+1 calls tend to proliferate 
• Lots of TCP sockets 
https://img1.etsystatic.com/000/0/5414982/il_fullxfull.191 
894533.jpg 
© 2014 PayPal Inc. All rights reserved. 17
Stick to the plan 
Consistency 
Standards, patterns, guidance 
Naming conventions 
• Field, parameter, URI 
Define HTTP interactions 
Identify common components 
• Addresses, user info etc 
Headers are platform plumbing 
Consistent identity mechanisms 
http://minorcreations.files.wordpress.com/2012/07/one.png 
© 2014 PayPal Inc. All rights reserved. 18
Decentralize 
Educate and cooperate 
© 2014 PayPal Inc. All rights reserved. 19
Be a good listener 
Decentralize 
Raise awareness 
Listen to feedback on gaps in understanding 
Conduct regular feedback sessions 
• Frontend and Backend devs 
Hackathons inside & out 
Document anything you have to answer twice 
Standards are requisite, but guidance is better 
Highlight outstanding examples of design and 
collaboration https://graysdeafblog.files.wordpress.com/20 
10/08/ear-horn.jpg 
© 2014 PayPal Inc. All rights reserved. 20
Educate and cooperate 
Decentralize 
Internal evangelism 
Educate developers 
• Program/process 
• Standards & principles 
Identify thought leaders 
• API design mentorship 
• Ongoing communication 
© 2014 PayPal Inc. All rights reserved. 21
Scaling API Design 
Thanks! 
Jason Harmon 
Head of API Design 
Paypal 
@jharmn 
Jasonh-n-austin 
© 2014 PayPal Inc. All rights reserved. 22

More Related Content

What's hot

Welcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at PostmanWelcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at PostmanPostman
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Nordic APIs
 
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflixapidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflixapidays
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...SmartBear
 
Advanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsAdvanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsSmartBear
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays
 
{Re}designing a Developer Portal
{Re}designing a Developer Portal{Re}designing a Developer Portal
{Re}designing a Developer PortalPronovix
 
What Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinWhat Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinPostman
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful APIChris Haddad
 
Drive API Adoption: Reach Over 13 Million Developers
Drive API Adoption: Reach Over 13 Million DevelopersDrive API Adoption: Reach Over 13 Million Developers
Drive API Adoption: Reach Over 13 Million DevelopersPostman
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first classLibbySchulze
 
Understanding and Executing on API Developer Experience
Understanding and Executing on API Developer ExperienceUnderstanding and Executing on API Developer Experience
Understanding and Executing on API Developer ExperienceSmartBear
 
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...apidays
 
Open Event API
Open Event APIOpen Event API
Open Event APIAvi Aryan
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...SmartBear
 
Webinar: “Introduction to the Postman API Network”
Webinar: “Introduction to the Postman API Network”Webinar: “Introduction to the Postman API Network”
Webinar: “Introduction to the Postman API Network”Postman
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeApigee | Google Cloud
 
Tools for designing and building great APIs
Tools for designing and building great APIsTools for designing and building great APIs
Tools for designing and building great APIsKong Inc.
 
Why You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIWhy You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIPostman
 

What's hot (20)

Welcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at PostmanWelcome Note by Abhinav Asthana, CEO at Postman
Welcome Note by Abhinav Asthana, CEO at Postman
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
 
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflixapidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
apidays LIVE Hong Kong 2021 - Less Data is More by Damir Svrtan, Netflix
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
 
Advanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIsAdvanced Mocking for Swagger APIs
Advanced Mocking for Swagger APIs
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
How to define an api
How to define an apiHow to define an api
How to define an api
 
{Re}designing a Developer Portal
{Re}designing a Developer Portal{Re}designing a Developer Portal
{Re}designing a Developer Portal
 
What Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig BalkinWhat Postman Did for a CEO Who Can’t Code by Craig Balkin
What Postman Did for a CEO Who Can’t Code by Craig Balkin
 
Six Steps To Build A Successful API
Six Steps To Build A Successful APISix Steps To Build A Successful API
Six Steps To Build A Successful API
 
Drive API Adoption: Reach Over 13 Million Developers
Drive API Adoption: Reach Over 13 Million DevelopersDrive API Adoption: Reach Over 13 Million Developers
Drive API Adoption: Reach Over 13 Million Developers
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 
Understanding and Executing on API Developer Experience
Understanding and Executing on API Developer ExperienceUnderstanding and Executing on API Developer Experience
Understanding and Executing on API Developer Experience
 
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
 
Open Event API
Open Event APIOpen Event API
Open Event API
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...
 
Webinar: “Introduction to the Postman API Network”
Webinar: “Introduction to the Postman API Network”Webinar: “Introduction to the Postman API Network”
Webinar: “Introduction to the Postman API Network”
 
Design-first API Development using Swagger and Node
Design-first API Development using Swagger and NodeDesign-first API Development using Swagger and Node
Design-first API Development using Swagger and Node
 
Tools for designing and building great APIs
Tools for designing and building great APIsTools for designing and building great APIs
Tools for designing and building great APIs
 
Why You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your APIWhy You Need a Developer Relations Team for Your API
Why You Need a Developer Relations Team for Your API
 

Viewers also liked

PayPal Resilient System Design
PayPal Resilient System DesignPayPal Resilient System Design
PayPal Resilient System DesignPradeep Ballal
 
PayPal Decision Management Architecture
PayPal Decision Management ArchitecturePayPal Decision Management Architecture
PayPal Decision Management ArchitecturePradeep Ballal
 
Api Design Anti-Patterns
Api Design Anti-PatternsApi Design Anti-Patterns
Api Design Anti-PatternsJason Harmon
 
I Want These * Bugs Off My * Internet
I Want These * Bugs Off My * InternetI Want These * Bugs Off My * Internet
I Want These * Bugs Off My * InternetDan Kaminsky
 
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa ClaraAdobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Claradev2ops
 

Viewers also liked (7)

PayPal Resilient System Design
PayPal Resilient System DesignPayPal Resilient System Design
PayPal Resilient System Design
 
PayPal Decision Management Architecture
PayPal Decision Management ArchitecturePayPal Decision Management Architecture
PayPal Decision Management Architecture
 
Api Design Anti-Patterns
Api Design Anti-PatternsApi Design Anti-Patterns
Api Design Anti-Patterns
 
Black ops 2012
Black ops 2012Black ops 2012
Black ops 2012
 
Protocoles SSL/TLS
Protocoles SSL/TLSProtocoles SSL/TLS
Protocoles SSL/TLS
 
I Want These * Bugs Off My * Internet
I Want These * Bugs Off My * InternetI Want These * Bugs Off My * Internet
I Want These * Bugs Off My * Internet
 
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa ClaraAdobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
Adobe Presents Internal Service Delivery Platform at Velocity 13 Santa Clara
 

Similar to Scaling API Design

Scaling API Design @restfest
Scaling API Design @restfestScaling API Design @restfest
Scaling API Design @restfestJason Harmon
 
Foundations of a Successful Developer Platform - DeveloperWeek 2015
Foundations of a Successful Developer Platform - DeveloperWeek 2015Foundations of a Successful Developer Platform - DeveloperWeek 2015
Foundations of a Successful Developer Platform - DeveloperWeek 2015Kamyar Mohager
 
Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Akana
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
API Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraAPI Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraCA API Management
 
Practical Application of API-First in microservices development
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices developmentChavdar Baikov
 
Pain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywherePain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywhereNordic APIs
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemMitch Colleran
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for LongevityMuleSoft
 
Recipes for API Ninjas
Recipes for API NinjasRecipes for API Ninjas
Recipes for API NinjasNordic APIs
 
Do's and Don'ts of APIs
Do's and Don'ts of APIsDo's and Don'ts of APIs
Do's and Don'ts of APIsJason Harmon
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxapidays
 
APIs in the Enterprise - Lessons Learned
APIs in the Enterprise - Lessons Learned APIs in the Enterprise - Lessons Learned
APIs in the Enterprise - Lessons Learned Apigee | Google Cloud
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...SmartBear
 
Driving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design ApproachDriving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design ApproachAkana
 
Hack for Good and Profit (Cloud Foundry Summit 2014)
Hack for Good and Profit (Cloud Foundry Summit 2014)Hack for Good and Profit (Cloud Foundry Summit 2014)
Hack for Good and Profit (Cloud Foundry Summit 2014)VMware Tanzu
 
Vasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfVasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfssuser57cef8
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
 

Similar to Scaling API Design (20)

Scaling API Design @restfest
Scaling API Design @restfestScaling API Design @restfest
Scaling API Design @restfest
 
Foundations of a Successful Developer Platform - DeveloperWeek 2015
Foundations of a Successful Developer Platform - DeveloperWeek 2015Foundations of a Successful Developer Platform - DeveloperWeek 2015
Foundations of a Successful Developer Platform - DeveloperWeek 2015
 
Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
API Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie MitraAPI Workshop Amsterdam presented by API Architect Ronnie Mitra
API Workshop Amsterdam presented by API Architect Ronnie Mitra
 
Practical Application of API-First in microservices development
Practical Application of API-First in microservices developmentPractical Application of API-First in microservices development
Practical Application of API-First in microservices development
 
Pain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywherePain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re Everywhere
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
 
Building Your API for Longevity
Building Your API for LongevityBuilding Your API for Longevity
Building Your API for Longevity
 
Recipes for API Ninjas
Recipes for API NinjasRecipes for API Ninjas
Recipes for API Ninjas
 
Do's and Don'ts of APIs
Do's and Don'ts of APIsDo's and Don'ts of APIs
Do's and Don'ts of APIs
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
APIs in the Enterprise - Lessons Learned
APIs in the Enterprise - Lessons Learned APIs in the Enterprise - Lessons Learned
APIs in the Enterprise - Lessons Learned
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
Intel Cloud Foundry and OpenStack
Intel Cloud Foundry and OpenStackIntel Cloud Foundry and OpenStack
Intel Cloud Foundry and OpenStack
 
Driving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design ApproachDriving Digital Innovation with a Layered API Design Approach
Driving Digital Innovation with a Layered API Design Approach
 
Hack for Good and Profit (Cloud Foundry Summit 2014)
Hack for Good and Profit (Cloud Foundry Summit 2014)Hack for Good and Profit (Cloud Foundry Summit 2014)
Hack for Good and Profit (Cloud Foundry Summit 2014)
 
Effective API Design
Effective API DesignEffective API Design
Effective API Design
 
Vasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfVasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdf
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
 

Recently uploaded

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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
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
 
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
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
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
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 

Recently uploaded (20)

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
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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
 
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...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
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 🔝✔️✔️
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
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
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
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
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 

Scaling API Design

  • 1. Scaling API Design Jason Harmon, Head of API Design November 2014 © 2014 PayPal Inc. All rights reserved.
  • 2. About me Scaling API Design Jason Harmon • Leads API design at Paypal • Design phase of the “PPaaS” aka “Paypal as a Service" program • Engineering-wide initiative • Collaborate on designs for all internal/external/partner/whatever APIs • Maintain style/standards • Stakeholder for internal developer portal & tools teams • Internal API design training/evangelism @jharmn Jasonh-n-austin © 2014 PayPal Inc. All rights reserved. 2
  • 3. Let’s think big What if your startup takes off? © 2014 PayPal Inc. All rights reserved. 3
  • 4. Breaking down the monolith Distributed architecture Define uniform interfaces Allow for scaling per capability Increase team autonomy Discoverability is hard in big systems © 2014 PayPal Inc. All rights reserved. 4
  • 5. Portfolio Think about the big picture © 2014 PayPal Inc. All rights reserved. 5
  • 6. Organizing your APIs Portfolio Respect customer language Inverse Conway’s Maneuver “Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.” • Don’t design your APIs to reflect your systems or organizations • Make your software look like your customers see you http://www.thoughtworks.com/radar/techniques © 2014 PayPal Inc. All rights reserved. 6
  • 7. Business decides, developers implement Portfolio Business Identify capabilities Sometimes a capability is a resource collection (not always) Level 1 Categories + Package/Spec/Level 2 Developers Use ‘namespaces’ to designate functional areas: • /v1/factory/widgets • Not always the same as capabilities/packages URIs relay data relationships © 2014 PayPal Inc. All rights reserved. 7
  • 8. Organizing your APIs Portfolio Group operations by goals/usage API Product Managers can be helpful Start with capabilities, not resources Discoverability via dev portals • Internal • External • Partner Use caution with product names for capabilities © 2014 PayPal Inc. All rights reserved. 8
  • 9. Design first Right after portfolio © 2014 PayPal Inc. All rights reserved. 9
  • 10. Building backend is expensive Design first Break changes early, before you build it Specification formats • Swagger, RAML, Blueprint: whatever suits you • Portal/Docs/Reference • Codegen server/client/SDK • Mocking • Consistency Validation Get API client feedback on mock APIs • Real usability is only measurable with tactile feedback • Weakness: multi-scenario and errors are hard to mock © 2014 PayPal Inc. All rights reserved. 10
  • 11. Design first: Parallelize © 2014 PayPal Inc. All rights reserved. 11
  • 12. Fundamentals Core elements of API design © 2014 PayPal Inc. All rights reserved. 12
  • 13. Be the client advocate Objectivity The best API designs come from outside the delivery team Make the server’s job hard, so all the client’s are easier Design without implementation constraints as a first concern Don’t take a tour in the hot dog factory © 2014 PayPal Inc. All rights reserved. 13
  • 14. Long live v1! Sustainability Rapid iteration/fundamental changes are off-limits •Rule #1 of API versioning: try not to •There are no extensible API designs Can we grow this design without starting over? Hide implementation details • Today’s backend is tomorrow’s scrap heap •Watch out for implementation details in errors Add URIs, deprecate URIs • Design iterations are usually new resources APIUX: http://apiux.com/2014/09/05/api-design-sustainability © 2014 PayPal Inc. All rights reserved. 14
  • 15. Nouns matter Usability http://softexpert.files.wordpress.com/2007/10/526604 Resource oriented Avoid RPC unless you can rationalize optimized DX Understandable terminology • Use industry-standard terminology where possible • Avoid vague terms: • Metadata • Context 86_6ca085f7a8.jpg?w=780 © 2014 PayPal Inc. All rights reserved. 15
  • 16. One API call is not enough Usability Get your flow on Capture current and future use cases Identify goals • Analyze chain of calls and identifiers required to reach goal REST != CRUD • Think beyond data structures, think resources • Resources should quickly reach client goals without excessive complexity © 2014 PayPal Inc. All rights reserved. 16
  • 17. Design scale, not system scale…or both Scalability The Goldilocks principle Be smart about “just right” sized resources Big resources can be a problem • System overload/performance issues • Coupling concerns • Long, unreliable HTTP connections • Bandwidth overhead • Complexity! Tiny resources can be just as bad • N+1 calls tend to proliferate • Lots of TCP sockets https://img1.etsystatic.com/000/0/5414982/il_fullxfull.191 894533.jpg © 2014 PayPal Inc. All rights reserved. 17
  • 18. Stick to the plan Consistency Standards, patterns, guidance Naming conventions • Field, parameter, URI Define HTTP interactions Identify common components • Addresses, user info etc Headers are platform plumbing Consistent identity mechanisms http://minorcreations.files.wordpress.com/2012/07/one.png © 2014 PayPal Inc. All rights reserved. 18
  • 19. Decentralize Educate and cooperate © 2014 PayPal Inc. All rights reserved. 19
  • 20. Be a good listener Decentralize Raise awareness Listen to feedback on gaps in understanding Conduct regular feedback sessions • Frontend and Backend devs Hackathons inside & out Document anything you have to answer twice Standards are requisite, but guidance is better Highlight outstanding examples of design and collaboration https://graysdeafblog.files.wordpress.com/20 10/08/ear-horn.jpg © 2014 PayPal Inc. All rights reserved. 20
  • 21. Educate and cooperate Decentralize Internal evangelism Educate developers • Program/process • Standards & principles Identify thought leaders • API design mentorship • Ongoing communication © 2014 PayPal Inc. All rights reserved. 21
  • 22. Scaling API Design Thanks! Jason Harmon Head of API Design Paypal @jharmn Jasonh-n-austin © 2014 PayPal Inc. All rights reserved. 22

Editor's Notes

  1. Define interfaces, then perform surgery When one component is overloaded, scale it! Harder to DDoS a distributed platform Implementations can fit the need Languages & data don’t have to be all the same Reduce duplication of efforts Create visibility to weak spots in capabilities
  2. Identify capabilities by way of use cases
  3. How will business understand what your API can do? More often it’s a package of resources & operations
  4. Identify capabilities by way of use cases
  5. Respect spec storage Separate from implementation, track minor versions on iterations All in one place – Platform skeleton Docs are specs too
  6. Use headers wisely Preserve external identity throughout internal platform calls