SlideShare a Scribd company logo
Scaling API Design 
Jason Harmon, Head of API Design 
September 2014 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary.
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. Confidential and proprietary. 2
Let’s think big 
What if your startup takes off? 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 3
Distributed architecture 
Breaking down the monolith 
Everyone starts with a monolith 
Defining uniform interfaces helps define bounded contexts 
• Define interfaces, then perform surgery 
Allows for scaling per capability 
• When one component is overloaded, scale it! 
• Harder to DDoS a distributed platform 
Increases team autonomy 
• Implementations can fit the need 
• Languages & data don’t have to be all the same 
Discoverability is a hard problem in big systems 
• Reduce duplication of efforts 
• Create visibility to weak spots in capabilities 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 4
Portfolio 
Think about the big picture 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 5
Portfolio 
Organizing your APIs 
Group operations by goals/usage 
API Product Managers are key, but they’re hard to find 
Start with capabilities, not resources 
• Identify capabilities by way of use cases 
Provide internal/external/partner developer portals to provide visibility 
Use caution with product names 
Respect customer language 
Inverse Conway’s Law 
“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 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 6
Portfolio 
Business decides, developers implement 
Business 
• Identify capabilities 
• How will business understand what your API can do? 
• Sometimes a capability is a resource collection 
• More often it’s a package of resources & operations 
• 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. Confidential and proprietary. 7
Design first 
Right after portfolio 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 8
Design first 
Building backend is expensive 
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 
Respect spec storage 
• Separate from implementation, track minor versions on iterations 
• All in one place – Platform skeleton 
• Docs are specs too 
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. Confidential and proprietary. 9
Design first: Parallelize 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 10
Fundamentals 
Core elements of API design 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 11
Sustainability 
Long live v1! 
• Rapid iteration/fundamental changes are off-limits once it’s released 
• Extensible API designs aren’t really a thing 
• Rule #1 of API versioniong: try not to 
Can we grow this design without starting over? 
Hide implementation details 
• Today’s backend is tomorrow’s scrap heap 
• Watch errors 
Add URIs, deprecate URIs; new designs are usually new resources 
• APIUX: http://apiux.com/2014/09/05/api-design-sustainability 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 12
Usability 
Think about API clients’ perspective 
Nouns matter 
• Resource-orientation 
http://softexpert.files.wordpress.com/2007/10/526604 
• Avoid RPC unless you can rationalize optimized DX 
• Understandable terminology 
• Use industry-standard terminology where possible 
• Avoid vague terms: metadata, context, etc 
Get your flow on 
• Capture current and future use cases 
• Identify goals 
• Analyze chain of calls required to get there 
86_6ca085f7a8.jpg?w=780 
• Pay attention to identifiers in each API to ensure they chain smoothly 
REST != CRUD 
• Think beyond data structures, think resources 
• Resources should quickly reach client goals without excessive complexity 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 13
Scalability 
We’re talking design scale, not system scale…or both 
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. Confidential and proprietary. 14
Consistency 
Stick to the plan 
Standards, guidance, patterns 
Naming conventions: Field, parameter, URI 
Define HTTP interactions 
• Common patterns 
Identify common components 
• Addresses, user info etc 
Headers are platform plumbing 
• Use them sparingly 
Ensure consistent identity mechanisms 
• Preserve external identity through 
internal platform calls http://minorcreations.files.wordpress.com/2012/07/one.png 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 15
Decentralize 
Educate and cooperate 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 16
Decentralize 
Educate and cooperate 
Internal evangelism 
Educate developers on program/process, standard, and principles 
Identify thought leaders and fast learners 
• Develop API design mentorship 
• Ongoing communication 
Listen to feedback on gaps in understanding 
• Conduct regular feedback sessions from frontend and backend devs 
• Hackathons inside & out 
• Dedicate to document anything you have to answer twice 
• Standards are nice, but guidance is better 
Highlight outstanding design and collaboration examples 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 17
Scaling API Design 
Thanks! 
Jason Harmon 
Head of API Design 
Paypal 
@jharmn 
Jasonh-n-austin 
© 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 18

More Related Content

What's hot (20)

PPTX
API-first development
Vasco Veloso
 
PDF
Lessons Learned from Revamping Our Doc Site
Pronovix
 
PPTX
Pain Points In API Development? They’re Everywhere
Nordic APIs
 
PDF
Rest api best practices – comprehensive handbook
Katy Slemon
 
PPTX
Your API Strategy: Why Boring is Best
Nordic APIs
 
PDF
Welcome Note by Abhinav Asthana, CEO at Postman
Postman
 
PPTX
Operational API design anti-patterns (Jason Harmon)
Nordic APIs
 
PPTX
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
PPT
API 101 - Understanding APIs
3scale
 
PDF
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
PDF
What Postman Did for a CEO Who Can’t Code by Craig Balkin
Postman
 
PDF
{Re}designing a Developer Portal
Pronovix
 
PPTX
Advanced Mocking for Swagger APIs
SmartBear
 
PDF
Drive API Adoption: Reach Over 13 Million Developers
Postman
 
PDF
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
apidays
 
PPTX
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays
 
PDF
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
Nordic APIs
 
PPTX
A Connector, A Container and an API Walk into a Bar… Microservices Edition
Steven Willmott
 
PDF
Webinar: “Introduction to the Postman API Network”
Postman
 
PDF
I Love APIs 2015: Create Design-driven APIs with Node.js and Swagger
Apigee | Google Cloud
 
API-first development
Vasco Veloso
 
Lessons Learned from Revamping Our Doc Site
Pronovix
 
Pain Points In API Development? They’re Everywhere
Nordic APIs
 
Rest api best practices – comprehensive handbook
Katy Slemon
 
Your API Strategy: Why Boring is Best
Nordic APIs
 
Welcome Note by Abhinav Asthana, CEO at Postman
Postman
 
Operational API design anti-patterns (Jason Harmon)
Nordic APIs
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Nordic APIs
 
API 101 - Understanding APIs
3scale
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays
 
What Postman Did for a CEO Who Can’t Code by Craig Balkin
Postman
 
{Re}designing a Developer Portal
Pronovix
 
Advanced Mocking for Swagger APIs
SmartBear
 
Drive API Adoption: Reach Over 13 Million Developers
Postman
 
INTERFACE, by apidays - Low code APIs that don't break by Zdenek Nemec, Supe...
apidays
 
apidays LIVE New York 2021 - Designing embedded platforms: Lessons from indus...
apidays
 
The Magic Behind Faster API Development, Testing and Delivery with API Virtua...
Nordic APIs
 
A Connector, A Container and an API Walk into a Bar… Microservices Edition
Steven Willmott
 
Webinar: “Introduction to the Postman API Network”
Postman
 
I Love APIs 2015: Create Design-driven APIs with Node.js and Swagger
Apigee | Google Cloud
 

Similar to Scaling API Design (20)

PPTX
Scaling API Design @restfest
Jason Harmon
 
PPTX
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Deepak Nadig
 
PPTX
Evolution of PayPal API Platform at API Meetup
Deepak Nadig
 
PPTX
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
Deepak Nadig
 
PDF
Rebooting APIs at scale
Rahul Dighe
 
PPTX
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
Deepak Nadig
 
PPT
Effective API Design
Bansilal Haudakari
 
PPTX
Do's and Don'ts of APIs
Jason Harmon
 
PPTX
API Product Management and Strategy
adritab
 
PPTX
10 steps to design and build the perfect
Son Nguyen
 
PDF
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
Deepak Nadig
 
PPT
Err what's an API? Lessons on driving API adoption in the "not for profit" se...
Jamie Parkins
 
PPTX
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Deepak Nadig
 
PDF
"API Design: From User Need to Finished Spec" by Andrew Jordan, ex-Product @T...
TheFamily
 
PPT
How to design effective APIs
Bansilal Haudakari
 
PDF
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
Jitendra Bafna
 
PPTX
API Product Management - Driving Success through the Value Chain
Apigee | Google Cloud
 
PDF
apidays Australia 2022 - API design challenges and making APIs your common la...
apidays
 
PPTX
API Best Practices-Focus on MuleSoft API's
Gaurav Talwadker
 
PPTX
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
Scaling API Design @restfest
Jason Harmon
 
Craft Conference 2015 - Evolution of the PayPal API: Platform & Culture
Deepak Nadig
 
Evolution of PayPal API Platform at API Meetup
Deepak Nadig
 
Evolution of the PayPal API Platform Enabling the future of Money at QCon San...
Deepak Nadig
 
Rebooting APIs at scale
Rahul Dighe
 
DeveloperWeek 2016 - Evolution of the PayPal Platform: Journey to APIs & Micr...
Deepak Nadig
 
Effective API Design
Bansilal Haudakari
 
Do's and Don'ts of APIs
Jason Harmon
 
API Product Management and Strategy
adritab
 
10 steps to design and build the perfect
Son Nguyen
 
Redesigning PayPal APIs for Scale and Simplicity - QCon San Francisco 2013
Deepak Nadig
 
Err what's an API? Lessons on driving API adoption in the "not for profit" se...
Jamie Parkins
 
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Deepak Nadig
 
"API Design: From User Need to Finished Spec" by Andrew Jordan, ex-Product @T...
TheFamily
 
How to design effective APIs
Bansilal Haudakari
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
Jitendra Bafna
 
API Product Management - Driving Success through the Value Chain
Apigee | Google Cloud
 
apidays Australia 2022 - API design challenges and making APIs your common la...
apidays
 
API Best Practices-Focus on MuleSoft API's
Gaurav Talwadker
 
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
Ad

Recently uploaded (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Tally software_Introduction_Presentation
AditiBansal54083
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Foundations of Marketo Engage - Powering Campaigns with Marketo Personalization
bbedford2
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Ad

Scaling API Design

  • 1. Scaling API Design Jason Harmon, Head of API Design September 2014 © 2014 PayPal Inc. All rights reserved. Confidential and proprietary.
  • 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. Confidential and proprietary. 2
  • 3. Let’s think big What if your startup takes off? © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 3
  • 4. Distributed architecture Breaking down the monolith Everyone starts with a monolith Defining uniform interfaces helps define bounded contexts • Define interfaces, then perform surgery Allows for scaling per capability • When one component is overloaded, scale it! • Harder to DDoS a distributed platform Increases team autonomy • Implementations can fit the need • Languages & data don’t have to be all the same Discoverability is a hard problem in big systems • Reduce duplication of efforts • Create visibility to weak spots in capabilities © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 4
  • 5. Portfolio Think about the big picture © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 5
  • 6. Portfolio Organizing your APIs Group operations by goals/usage API Product Managers are key, but they’re hard to find Start with capabilities, not resources • Identify capabilities by way of use cases Provide internal/external/partner developer portals to provide visibility Use caution with product names Respect customer language Inverse Conway’s Law “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 © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 6
  • 7. Portfolio Business decides, developers implement Business • Identify capabilities • How will business understand what your API can do? • Sometimes a capability is a resource collection • More often it’s a package of resources & operations • 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. Confidential and proprietary. 7
  • 8. Design first Right after portfolio © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 8
  • 9. Design first Building backend is expensive 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 Respect spec storage • Separate from implementation, track minor versions on iterations • All in one place – Platform skeleton • Docs are specs too 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. Confidential and proprietary. 9
  • 10. Design first: Parallelize © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 10
  • 11. Fundamentals Core elements of API design © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 11
  • 12. Sustainability Long live v1! • Rapid iteration/fundamental changes are off-limits once it’s released • Extensible API designs aren’t really a thing • Rule #1 of API versioniong: try not to Can we grow this design without starting over? Hide implementation details • Today’s backend is tomorrow’s scrap heap • Watch errors Add URIs, deprecate URIs; new designs are usually new resources • APIUX: http://apiux.com/2014/09/05/api-design-sustainability © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 12
  • 13. Usability Think about API clients’ perspective Nouns matter • Resource-orientation http://softexpert.files.wordpress.com/2007/10/526604 • Avoid RPC unless you can rationalize optimized DX • Understandable terminology • Use industry-standard terminology where possible • Avoid vague terms: metadata, context, etc Get your flow on • Capture current and future use cases • Identify goals • Analyze chain of calls required to get there 86_6ca085f7a8.jpg?w=780 • Pay attention to identifiers in each API to ensure they chain smoothly REST != CRUD • Think beyond data structures, think resources • Resources should quickly reach client goals without excessive complexity © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 13
  • 14. Scalability We’re talking design scale, not system scale…or both 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. Confidential and proprietary. 14
  • 15. Consistency Stick to the plan Standards, guidance, patterns Naming conventions: Field, parameter, URI Define HTTP interactions • Common patterns Identify common components • Addresses, user info etc Headers are platform plumbing • Use them sparingly Ensure consistent identity mechanisms • Preserve external identity through internal platform calls http://minorcreations.files.wordpress.com/2012/07/one.png © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 15
  • 16. Decentralize Educate and cooperate © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 16
  • 17. Decentralize Educate and cooperate Internal evangelism Educate developers on program/process, standard, and principles Identify thought leaders and fast learners • Develop API design mentorship • Ongoing communication Listen to feedback on gaps in understanding • Conduct regular feedback sessions from frontend and backend devs • Hackathons inside & out • Dedicate to document anything you have to answer twice • Standards are nice, but guidance is better Highlight outstanding design and collaboration examples © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 17
  • 18. Scaling API Design Thanks! Jason Harmon Head of API Design Paypal @jharmn Jasonh-n-austin © 2014 PayPal Inc. All rights reserved. Confidential and proprietary. 18