SlideShare a Scribd company logo
1 of 19
Download to read offline
REST to GraphQL
A structured thinking approach
Ankit Muchhala
Technical Lead, Postman
“GraphQL can be easily layered
on top of REST APIs”
Why is it NOT easy?
Design Principles
• REST is focused on building
loosely coupled apps.
• GraphQL is focused on
product-centric APIs.
Similarity with RPC
• Most tutorials use RPC-like
names for querying.
• Schema scalability suffers.
Thinking in Graphs
• Starting from a REST API may
bias thinking.
Example: Let’s build a team!
• Build an API to manage
• Organizations
• Teams
• Users
• Accounts
User service
Team service
The REST way
GET /orgs/:org_id
GET /teams/:team_id
GET /orgs/:oid/teams/
GET /teams/:team_id/users
GET /users/:user_id/accounts
GET /organizations/:org_id/users
GET /users/:user_id
The Graph-REST way
type Organization {
users: [OrgUser]
teams: [OrgTeam]
}
type Team {
users: [TeamUser]
}
type TeamUser {
team: String
organization: String
accounts: [TeamUserAccount]
}
type OrgUser {
organization: String
}
type User {
id: [...]
accounts: [Account]
}
type TeamUserAccount {
name: String
email: String
}
GET /teams/:id
GET /orgs/:id
GET /orgs/:id/teams
GET /teams/:id/users
GET /orgs/:id/users
GET /users/:id
GET /teams/:id/users/:id/acc..
GET /users/:id/accounts
Where did we go wrong?
• We modelled the schema as a
set of disconnected trees.
• It should have been a graph.
• Did not think properly.
How to think in graphs?
Activities To Be Done (ATBD™)
• Textual description of every action the user
wants to perform in detail.
• Helps you think from a user’s perspective.
• Covers product flows.
• Similar to JTBDs but more fine grained.
In our example
• View all teams in an organization.
• View all users in a team.
• Get information about a specific user.
• List all users in an organization.
• Get all accounts registered with an organization.
• List all accounts associated with a user.
• Get information about a team.
• View organization information for a user.
• View team information for a user.
Focus on user. Not UI.
Noun Analysis
• Highlight the nouns involved in this
description.
• Helps you identify objects, which become
common types.
• Very similar to building an E-R diagram.
In our example
• View all teams in an organization.
• View all users in a team.
• Get information about a specific user.
• List all users in an organization.
• Get all accounts registered with an organization.
• List all accounts associated with a user.
• Get information about a team.
• View organization information for a user.
• View team information for a user.
Relationship Graphs
type Organization {
id: ID
teams: [Team]
}
type Team {
id: ID
users: [User]
}
type User {
id: ID
accounts: [Account]
}
type Account {
id: ID
}
How does it matter to me?
• More focus on domain interfaces.
• What language is internal and what is external?
• Forcing function for external API design.
• Promotes user-driven development.
• Allows multiple personas to utilize APIs.
Persona Benefits of this approach
Backend Engineer Design and build product-centric APIs
Product Manager Understand domain interfaces
UX / UI Designer Develop a common language in UX and API
Solutions Engineer Faster prototyping of ideas
Engineering Manager Schema is the single source of truth
DevOps Better debugging and optimization
Frontend Engineer Easier to build UI atop user-focused API
Thank you
ankit_muchhala

More Related Content

Similar to REST to GraphQL

Ordering the chaos: Creating websites with imperfect data
Ordering the chaos: Creating websites with imperfect dataOrdering the chaos: Creating websites with imperfect data
Ordering the chaos: Creating websites with imperfect dataAndy Stretton
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...Vincent Biret
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraphVincent Biret
 
Web Concepts_Introduction to Website Planning
Web Concepts_Introduction to Website PlanningWeb Concepts_Introduction to Website Planning
Web Concepts_Introduction to Website Planningclement swarnappa
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...Vincent Biret
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketSTC-Philadelphia Metro Chapter
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business valueThoughtworks
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Vincent Biret
 
SNOW Knowledge Management_SSP.ppt
SNOW Knowledge Management_SSP.pptSNOW Knowledge Management_SSP.ppt
SNOW Knowledge Management_SSP.pptChakrapaniGunti
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringVanessa Turke
 
How TypeScript App Development is Important.pdf
How TypeScript App Development is Important.pdfHow TypeScript App Development is Important.pdf
How TypeScript App Development is Important.pdfWDP Technologies
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
Software Development Demo:GDSC&UISS .pptx
Software Development Demo:GDSC&UISS .pptxSoftware Development Demo:GDSC&UISS .pptx
Software Development Demo:GDSC&UISS .pptxJamesMushi3
 
APIs are for People Too
APIs are for People TooAPIs are for People Too
APIs are for People TooLisa Dusseault
 

Similar to REST to GraphQL (20)

Ordering the chaos: Creating websites with imperfect data
Ordering the chaos: Creating websites with imperfect dataOrdering the chaos: Creating websites with imperfect data
Ordering the chaos: Creating websites with imperfect data
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph
 
Web Concepts_Introduction to Website Planning
Web Concepts_Introduction to Website PlanningWeb Concepts_Introduction to Website Planning
Web Concepts_Introduction to Website Planning
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty MarketAPIs and SDKs: Breaking into and Succeeding in a Specialty Market
APIs and SDKs: Breaking into and Succeeding in a Specialty Market
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business value
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
 
SNOW Knowledge Management_SSP.ppt
SNOW Knowledge Management_SSP.pptSNOW Knowledge Management_SSP.ppt
SNOW Knowledge Management_SSP.ppt
 
Liferay
LiferayLiferay
Liferay
 
[Webinar] Understanding Microsoft Teams: What You Need to Know
[Webinar] Understanding Microsoft Teams: What You Need to Know[Webinar] Understanding Microsoft Teams: What You Need to Know
[Webinar] Understanding Microsoft Teams: What You Need to Know
 
The Art and Science of Requirements Gathering
The Art and Science of Requirements GatheringThe Art and Science of Requirements Gathering
The Art and Science of Requirements Gathering
 
Fiona caldwell presentation
Fiona caldwell   presentationFiona caldwell   presentation
Fiona caldwell presentation
 
How TypeScript App Development is Important.pdf
How TypeScript App Development is Important.pdfHow TypeScript App Development is Important.pdf
How TypeScript App Development is Important.pdf
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
API ARU-ARU
API ARU-ARUAPI ARU-ARU
API ARU-ARU
 
Software Development Demo:GDSC&UISS .pptx
Software Development Demo:GDSC&UISS .pptxSoftware Development Demo:GDSC&UISS .pptx
Software Development Demo:GDSC&UISS .pptx
 
APIs are for People Too
APIs are for People TooAPIs are for People Too
APIs are for People Too
 

Recently uploaded

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
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
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 

Recently uploaded (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
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-...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 

REST to GraphQL

  • 1. REST to GraphQL A structured thinking approach Ankit Muchhala Technical Lead, Postman
  • 2. “GraphQL can be easily layered on top of REST APIs”
  • 3. Why is it NOT easy? Design Principles • REST is focused on building loosely coupled apps. • GraphQL is focused on product-centric APIs. Similarity with RPC • Most tutorials use RPC-like names for querying. • Schema scalability suffers. Thinking in Graphs • Starting from a REST API may bias thinking.
  • 4. Example: Let’s build a team! • Build an API to manage • Organizations • Teams • Users • Accounts
  • 5. User service Team service The REST way GET /orgs/:org_id GET /teams/:team_id GET /orgs/:oid/teams/ GET /teams/:team_id/users GET /users/:user_id/accounts GET /organizations/:org_id/users GET /users/:user_id
  • 6. The Graph-REST way type Organization { users: [OrgUser] teams: [OrgTeam] } type Team { users: [TeamUser] } type TeamUser { team: String organization: String accounts: [TeamUserAccount] } type OrgUser { organization: String } type User { id: [...] accounts: [Account] } type TeamUserAccount { name: String email: String } GET /teams/:id GET /orgs/:id GET /orgs/:id/teams GET /teams/:id/users GET /orgs/:id/users GET /users/:id GET /teams/:id/users/:id/acc.. GET /users/:id/accounts
  • 7.
  • 8. Where did we go wrong? • We modelled the schema as a set of disconnected trees. • It should have been a graph. • Did not think properly.
  • 9. How to think in graphs?
  • 10. Activities To Be Done (ATBD™) • Textual description of every action the user wants to perform in detail. • Helps you think from a user’s perspective. • Covers product flows. • Similar to JTBDs but more fine grained.
  • 11. In our example • View all teams in an organization. • View all users in a team. • Get information about a specific user. • List all users in an organization. • Get all accounts registered with an organization. • List all accounts associated with a user. • Get information about a team. • View organization information for a user. • View team information for a user.
  • 12. Focus on user. Not UI.
  • 13. Noun Analysis • Highlight the nouns involved in this description. • Helps you identify objects, which become common types. • Very similar to building an E-R diagram.
  • 14. In our example • View all teams in an organization. • View all users in a team. • Get information about a specific user. • List all users in an organization. • Get all accounts registered with an organization. • List all accounts associated with a user. • Get information about a team. • View organization information for a user. • View team information for a user.
  • 16. type Organization { id: ID teams: [Team] } type Team { id: ID users: [User] } type User { id: ID accounts: [Account] } type Account { id: ID }
  • 17. How does it matter to me? • More focus on domain interfaces. • What language is internal and what is external? • Forcing function for external API design. • Promotes user-driven development. • Allows multiple personas to utilize APIs.
  • 18. Persona Benefits of this approach Backend Engineer Design and build product-centric APIs Product Manager Understand domain interfaces UX / UI Designer Develop a common language in UX and API Solutions Engineer Faster prototyping of ideas Engineering Manager Schema is the single source of truth DevOps Better debugging and optimization Frontend Engineer Easier to build UI atop user-focused API