Netflix API - Separation of Concerns

Daniel Jacobson
Daniel JacobsonDirector of Engineering - Netflix API at Netflix
SEPARATION
OF
CONCERNS
Daniel Jacobson
@daniel_jacobson
http://www.linkedin.com/in/danieljacobson
http://www.slideshare.net/danieljacobson
APIs Do
Lots of Things!
Data Gathering
Data Formatting
Data Delivery
Security
Authorization
Authentication
System Scaling
Discoverability
Data Consistency
Translations
Throttling
Orchestration
APIs Do
Lots of Things!
These are some of the
many things APIs do.
Data Gathering
Data Formatting
Data Delivery
Security
Authorization
Authentication
System Scaling
Discoverability
Data Consistency
Translations
Throttling
Orchestration
APIs Do
Lots of Things!
These three are at the core.
All others ultimately
support them.
Definitions
• Data Gathering
– Retrieving the requested data from one or many local
or remote data sources
• Data Formatting
– Preparing a structured payload to the requesting
agent
• Data Delivery
– Delivering the structured payload to the requesting
agent
Meanwhile…
There are two players in APIs
API Provider
API Provider API Consumer
API Provider
PROVIDES
API Consumer
CONSUMES
Traditional API Interactions
API Provider
PROVIDES
EVERYTHING
API Consumer
CONSUMES
Everything means, API Provider does:
• Data Gathering
• Data Formatting
• Data Delivery
• (among other things)
Traditional API Interactions
Why do most API providers provide
everything?
• API design tends to be easier for teams closer
to the source
• Centralized API functions makes them easier
to support
• Many APIs have a large set of unknown and
external developers
Why do most API providers provide
everything?
• API design tends to be easier for teams closer
to the source
• Centralized API functions makes them easier
to support
• Many APIs have a large set of unknown and
external developers
Data Gathering Data Formatting Data Delivery
API Consumer
API Provider
Separation of Concerns
To be a better provider, the API should address the
separation of concerns of the three core functions
Data Gathering Data Formatting Data Delivery
API Consumer
Don’t care how data
is gathered, as long
as it is gathered
API Provider
Care a lot about
how the data is
gathered
Separation of Concerns
Data Gathering Data Formatting Data Delivery
API Consumer
Don’t care how data
is gathered, as long
as it is gathered
Each consumer cares a
lot about the format
for that specific use
API Provider
Care a lot about
how the data is
gathered
Only cares about the
format to the extent it
is easy to support
Separation of Concerns
Data Gathering Data Formatting Data Delivery
API Consumer
Don’t care how data
is gathered, as long
as it is gathered
Each consumer cares a
lot about the format
for that specific use
Each consumer cares a
lot about how payload
is delivered
API Provider
Care a lot about
how the data is
gathered
Only cares about the
format to the extent it
is easy to support
Only cares about
delivery method to the
extent it is easy to
support
Separation of Concerns
Because of our separation of
concerns, the Netflix API team is
enabled to focus on different charters
Key Responsibilities
• Broker data between services and UIs
• Maintain a resilient front-door
• Scale the system vertically and horizontally
• Maintain high velocity
• Provide detailed insights into the system health
Brokering Data to
1,000+ Device Types
Most API Providers
Netflix API - Separation of Concerns
Screen Real Estate
Controller
Technical Capabilities
One-Size-Fits-All
API
Request
Request
Request
Courtesy of South Florida Classical Review
Netflix API - Separation of Concerns
Resource-Based API
vs.
Experience-Based API
Resource-Based Requests
• /users/<id>/ratings/title
• /users/<id>/queues
• /users/<id>/queues/instant
• /users/<id>/recommendations
• /catalog/titles/movie
• /catalog/titles/series
• /catalog/people
REST API
RECOMME
NDATIONS
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
Network Border Network Border
RECOMME
NDATIONS
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
OSFA API
Network Border Network Border
SERVER CODE
CLIENT CODE
RECOMME
NDATIONS
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
OSFA API
Network Border Network Border
DATA GATHERING,
FORMATTING,
AND DELIVERY
USER INTERFACE
RENDERING
Netflix API - Separation of Concerns
Netflix API - Separation of Concerns
Experience-Based Requests
• /ps3/homescreen
JAVA API
Network Border Network Border
RECOMME
NDATIONS
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
Groovy Layer
RECOMME
NDATIONSA
ZXSXX C
CCC
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
JAVA API
SERVER CODE
CLIENT CODE
CLIENT ADAPTER CODE
(WRITTEN BY CLIENT TEAMS, DYNAMICALLY UPLOADED TO SERVER)
Network Border Network Border
RECOMME
NDATIONSA
ZXSXX C
CCC
MOVIE
DATA
SIMILAR
MOVIES
AUTH
MEMBER
DATA
A/B
TESTS
START-
UP
RATINGS
JAVA API
DATA GATHERING
DATA FORMATTING
AND DELIVERY
USER INTERFACE
RENDERING
Network Border Network Border
Netflix API - Separation of Concerns
SEPARATION
OF
CONCERNS
Daniel Jacobson
@daniel_jacobson
http://www.linkedin.com/in/danieljacobson
http://www.slideshare.net/danieljacobson
Want to help us solve some of
our concerns?
http://www.netflix.com/jobs
1 of 40

Recommended

Architecture: Microservices by
Architecture: MicroservicesArchitecture: Microservices
Architecture: MicroservicesAmazon Web Services
23.2K views56 slides
Microservices Technology Stack by
Microservices Technology StackMicroservices Technology Stack
Microservices Technology StackEberhard Wolff
16.2K views89 slides
Introduction to Microservices by
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesAmazon Web Services
20.2K views42 slides
APIs as a Product Strategy by
APIs as a Product StrategyAPIs as a Product Strategy
APIs as a Product StrategyRavi Kumar
7.7K views57 slides
MuleSoft Anypoint Platform and Three Tier Architecture by
MuleSoft Anypoint  Platform and Three Tier ArchitectureMuleSoft Anypoint  Platform and Three Tier Architecture
MuleSoft Anypoint Platform and Three Tier ArchitectureHarish Kumar
4.7K views17 slides
Architecting an Enterprise API Management Strategy by
Architecting an Enterprise API Management StrategyArchitecting an Enterprise API Management Strategy
Architecting an Enterprise API Management StrategyWSO2
18.1K views39 slides

More Related Content

What's hot

Microservice Architecture 101 by
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101Kochih Wu
4.8K views29 slides
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next by
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextDaniel Bryant
3.3K views36 slides
Azure API Management by
Azure API ManagementAzure API Management
Azure API ManagementDaniel Toomey
5.2K views36 slides
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup by
Applying Domain-Driven Design to APIs and Microservices  - Austin API MeetupApplying Domain-Driven Design to APIs and Microservices  - Austin API Meetup
Applying Domain-Driven Design to APIs and Microservices - Austin API MeetupLaunchAny
2.2K views50 slides
Designing APIs and Microservices Using Domain-Driven Design by
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
15.1K views48 slides
Microservices Docker Kubernetes Istio Kanban DevOps SRE by
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
4.2K views173 slides

What's hot(20)

Microservice Architecture 101 by Kochih Wu
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101
Kochih Wu4.8K views
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next by Daniel Bryant
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
Daniel Bryant3.3K views
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup by LaunchAny
Applying Domain-Driven Design to APIs and Microservices  - Austin API MeetupApplying Domain-Driven Design to APIs and Microservices  - Austin API Meetup
Applying Domain-Driven Design to APIs and Microservices - Austin API Meetup
LaunchAny2.2K views
Designing APIs and Microservices Using Domain-Driven Design by LaunchAny
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
LaunchAny15.1K views
Microservices Docker Kubernetes Istio Kanban DevOps SRE by Araf Karsh Hamid
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid4.2K views
What do you mean by “API as a Product”? by Nordic APIs
What do you mean by “API as a Product”?What do you mean by “API as a Product”?
What do you mean by “API as a Product”?
Nordic APIs4.4K views
Three layer API Design Architecture by Harish Kumar
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
Harish Kumar22K views
Microservices by SmartBear
MicroservicesMicroservices
Microservices
SmartBear1.5K views
API Frenzy: API Strategy 101 by Akana
API Frenzy: API Strategy 101API Frenzy: API Strategy 101
API Frenzy: API Strategy 101
Akana10.5K views
apidays LIVE Australia 2021 - Composing a Headless and Composable Commerce Ar... by apidays
apidays LIVE Australia 2021 - Composing a Headless and Composable Commerce Ar...apidays LIVE Australia 2021 - Composing a Headless and Composable Commerce Ar...
apidays LIVE Australia 2021 - Composing a Headless and Composable Commerce Ar...
apidays1.4K views
Microservices, Containers, Kubernetes, Kafka, Kanban by Araf Karsh Hamid
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
Araf Karsh Hamid2.6K views
API Management architect presentation by sflynn073
API Management architect presentationAPI Management architect presentation
API Management architect presentation
sflynn07313.6K views
Principles of microservices XP Days Ukraine by Sam Newman
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
Sam Newman9.4K views
Construindo pipelines com Azure DevOps by Camila Carrera
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
Camila Carrera121 views
Introduction to appDynamics by Siddhanta Rath
Introduction to appDynamics Introduction to appDynamics
Introduction to appDynamics
Siddhanta Rath8.6K views

Viewers also liked

Top 10 Lessons Learned from the Netflix API - OSCON 2014 by
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014Daniel Jacobson
29.6K views87 slides
Netflix Edge Engineering Open House Presentations - June 9, 2016 by
Netflix Edge Engineering Open House Presentations - June 9, 2016Netflix Edge Engineering Open House Presentations - June 9, 2016
Netflix Edge Engineering Open House Presentations - June 9, 2016Daniel Jacobson
4.8K views110 slides
Maintaining the Netflix Front Door - Presentation at Intuit Meetup by
Maintaining the Netflix Front Door - Presentation at Intuit MeetupMaintaining the Netflix Front Door - Presentation at Intuit Meetup
Maintaining the Netflix Front Door - Presentation at Intuit MeetupDaniel Jacobson
5.4K views156 slides
Culture by
CultureCulture
CultureReed Hastings
17.2M views125 slides
Maintaining the Front Door to Netflix : The Netflix API by
Maintaining the Front Door to Netflix : The Netflix APIMaintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix APIDaniel Jacobson
70.3K views138 slides
Scaling the Netflix API - OSCON by
Scaling the Netflix API - OSCONScaling the Netflix API - OSCON
Scaling the Netflix API - OSCONDaniel Jacobson
7.5K views119 slides

Viewers also liked(20)

Top 10 Lessons Learned from the Netflix API - OSCON 2014 by Daniel Jacobson
Top 10 Lessons Learned from the Netflix API - OSCON 2014Top 10 Lessons Learned from the Netflix API - OSCON 2014
Top 10 Lessons Learned from the Netflix API - OSCON 2014
Daniel Jacobson29.6K views
Netflix Edge Engineering Open House Presentations - June 9, 2016 by Daniel Jacobson
Netflix Edge Engineering Open House Presentations - June 9, 2016Netflix Edge Engineering Open House Presentations - June 9, 2016
Netflix Edge Engineering Open House Presentations - June 9, 2016
Daniel Jacobson4.8K views
Maintaining the Netflix Front Door - Presentation at Intuit Meetup by Daniel Jacobson
Maintaining the Netflix Front Door - Presentation at Intuit MeetupMaintaining the Netflix Front Door - Presentation at Intuit Meetup
Maintaining the Netflix Front Door - Presentation at Intuit Meetup
Daniel Jacobson5.4K views
Maintaining the Front Door to Netflix : The Netflix API by Daniel Jacobson
Maintaining the Front Door to Netflix : The Netflix APIMaintaining the Front Door to Netflix : The Netflix API
Maintaining the Front Door to Netflix : The Netflix API
Daniel Jacobson70.3K views
Scaling the Netflix API - OSCON by Daniel Jacobson
Scaling the Netflix API - OSCONScaling the Netflix API - OSCON
Scaling the Netflix API - OSCON
Daniel Jacobson7.5K views
Redesigning the Netflix API - OSCON by Daniel Jacobson
Redesigning the Netflix API - OSCONRedesigning the Netflix API - OSCON
Redesigning the Netflix API - OSCON
Daniel Jacobson4.8K views
Scaling the Netflix API - From Atlassian Dev Den by Daniel Jacobson
Scaling the Netflix API - From Atlassian Dev DenScaling the Netflix API - From Atlassian Dev Den
Scaling the Netflix API - From Atlassian Dev Den
Daniel Jacobson12.1K views
Why API? - Business of APIs Conference by Daniel Jacobson
Why API? - Business of APIs ConferenceWhy API? - Business of APIs Conference
Why API? - Business of APIs Conference
Daniel Jacobson4.9K views
Set Your Content Free! : Case Studies from Netflix and NPR by Daniel Jacobson
Set Your Content Free! : Case Studies from Netflix and NPRSet Your Content Free! : Case Studies from Netflix and NPR
Set Your Content Free! : Case Studies from Netflix and NPR
Daniel Jacobson35.1K views
API Revolutions : Netflix's API Redesign by Daniel Jacobson
API Revolutions : Netflix's API RedesignAPI Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
Daniel Jacobson35.7K views
Simplifying Salesforce REST in Java Using Annotations by Salesforce Developers
Simplifying Salesforce REST in Java Using AnnotationsSimplifying Salesforce REST in Java Using Annotations
Simplifying Salesforce REST in Java Using Annotations
How Jenkins Builds the Netflix Global Streaming Service by Gareth Bowles
How Jenkins Builds the Netflix Global Streaming ServiceHow Jenkins Builds the Netflix Global Streaming Service
How Jenkins Builds the Netflix Global Streaming Service
Gareth Bowles9.9K views
Maintaining reliability in an unreliable world by Jeremy Edberg
Maintaining reliability in an unreliable worldMaintaining reliability in an unreliable world
Maintaining reliability in an unreliable world
Jeremy Edberg1.5K views
History and Future of the Netflix API - Mashery Evolution of Distribution by Daniel Jacobson
History and Future of the Netflix API - Mashery Evolution of DistributionHistory and Future of the Netflix API - Mashery Evolution of Distribution
History and Future of the Netflix API - Mashery Evolution of Distribution
Daniel Jacobson3.8K views
Trailhead Live Developer Workshop - Salesforce App Cloud by Sam Garforth
Trailhead Live Developer Workshop - Salesforce App CloudTrailhead Live Developer Workshop - Salesforce App Cloud
Trailhead Live Developer Workshop - Salesforce App Cloud
Sam Garforth2.4K views
Asgard, the Grails App that Deploys Netflix to the Cloud by Joe Sondow
Asgard, the Grails App that Deploys Netflix to the CloudAsgard, the Grails App that Deploys Netflix to the Cloud
Asgard, the Grails App that Deploys Netflix to the Cloud
Joe Sondow30.3K views

Similar to Netflix API - Separation of Concerns

Maintaining the Front Door to Netflix by
Maintaining the Front Door to NetflixMaintaining the Front Door to Netflix
Maintaining the Front Door to NetflixBenjamin Schmaus
2.5K views136 slides
Oscon2014 Netflix API - Top 10 Lessons Learned by
Oscon2014 Netflix API - Top 10 Lessons LearnedOscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons LearnedSangeeta Narayanan
846 views86 slides
Apache NiFi Toronto Meetup by
Apache NiFi Toronto MeetupApache NiFi Toronto Meetup
Apache NiFi Toronto MeetupHortonworks
4.8K views28 slides
IT Network Asset Discovery & Inventory by
IT Network Asset Discovery & InventoryIT Network Asset Discovery & Inventory
IT Network Asset Discovery & Inventoryikirmer
776 views12 slides
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs by
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsLeveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsconfluent
635 views95 slides
What is API - Understanding API Simplified by
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API SimplifiedJubin Aghara
281 views14 slides

Similar to Netflix API - Separation of Concerns(20)

Maintaining the Front Door to Netflix by Benjamin Schmaus
Maintaining the Front Door to NetflixMaintaining the Front Door to Netflix
Maintaining the Front Door to Netflix
Benjamin Schmaus2.5K views
Oscon2014 Netflix API - Top 10 Lessons Learned by Sangeeta Narayanan
Oscon2014 Netflix API - Top 10 Lessons LearnedOscon2014 Netflix API - Top 10 Lessons Learned
Oscon2014 Netflix API - Top 10 Lessons Learned
Sangeeta Narayanan846 views
Apache NiFi Toronto Meetup by Hortonworks
Apache NiFi Toronto MeetupApache NiFi Toronto Meetup
Apache NiFi Toronto Meetup
Hortonworks4.8K views
IT Network Asset Discovery & Inventory by ikirmer
IT Network Asset Discovery & InventoryIT Network Asset Discovery & Inventory
IT Network Asset Discovery & Inventory
ikirmer776 views
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs by confluent
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsLeveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs
confluent635 views
What is API - Understanding API Simplified by Jubin Aghara
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
Jubin Aghara281 views
Core Connector API Demo - Michael Marks Product Manager - Identity, Core Secu... by Core Security
Core Connector API Demo - Michael Marks Product Manager - Identity, Core Secu...Core Connector API Demo - Michael Marks Product Manager - Identity, Core Secu...
Core Connector API Demo - Michael Marks Product Manager - Identity, Core Secu...
Core Security57 views
Droidcon Tunisia 2014 connect your mobile app to your backend by Nacef Labidi
Droidcon Tunisia 2014 connect your mobile app to your backendDroidcon Tunisia 2014 connect your mobile app to your backend
Droidcon Tunisia 2014 connect your mobile app to your backend
Nacef Labidi351 views
How APIs are Changing Software Development by 3scale
How APIs are Changing Software DevelopmentHow APIs are Changing Software Development
How APIs are Changing Software Development
3scale10.9K views
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro by Gaurav "GP" Pal
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suroDevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
DevOps in the Amazon Cloud – Learn from the pioneersNetflix suro
Gaurav "GP" Pal1.1K views
Salesforce Multitenant Architecture: How We Do the Magic We Do by Salesforce Developers
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Developers21.5K views
F5 Infosec Israel 2013 Locking the Door in the Clouds by Tzoori Tamam
F5 Infosec Israel  2013  Locking the Door in the CloudsF5 Infosec Israel  2013  Locking the Door in the Clouds
F5 Infosec Israel 2013 Locking the Door in the Clouds
Tzoori Tamam601 views
Data Services Marketplace by Denodo
Data Services MarketplaceData Services Marketplace
Data Services Marketplace
Denodo 1.2K views
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow... by Data Con LA
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Big Data Day LA 2016/ Big Data Track - Building scalable enterprise data flow...
Data Con LA1.1K views
Couchbase Mobile on Android by Philipp Fehre
Couchbase Mobile on AndroidCouchbase Mobile on Android
Couchbase Mobile on Android
Philipp Fehre842 views
Integração de Dados com Apache NIFI - Marco Garcia Cetax by Marco Garcia
Integração de Dados com Apache NIFI - Marco Garcia CetaxIntegração de Dados com Apache NIFI - Marco Garcia Cetax
Integração de Dados com Apache NIFI - Marco Garcia Cetax
Marco Garcia565 views
Microservices, Events, and Breaking the Data Monolith with Kafka by VMware Tanzu
Microservices, Events, and Breaking the Data Monolith with KafkaMicroservices, Events, and Breaking the Data Monolith with Kafka
Microservices, Events, and Breaking the Data Monolith with Kafka
VMware Tanzu2.2K views

More from Daniel Jacobson

Netflix API: Keynote at Disney Tech Conference by
Netflix API: Keynote at Disney Tech ConferenceNetflix API: Keynote at Disney Tech Conference
Netflix API: Keynote at Disney Tech ConferenceDaniel Jacobson
2.9K views142 slides
Netflix API - Presentation to PayPal by
Netflix API - Presentation to PayPalNetflix API - Presentation to PayPal
Netflix API - Presentation to PayPalDaniel Jacobson
25.9K views101 slides
Techniques for Scaling the Netflix API - QCon SF by
Techniques for Scaling the Netflix API - QCon SFTechniques for Scaling the Netflix API - QCon SF
Techniques for Scaling the Netflix API - QCon SFDaniel Jacobson
2.3K views98 slides
APIs for Internal Audiences - Netflix - App Dev Conference by
APIs for Internal Audiences - Netflix - App Dev ConferenceAPIs for Internal Audiences - Netflix - App Dev Conference
APIs for Internal Audiences - Netflix - App Dev ConferenceDaniel Jacobson
1.7K views34 slides
Netflix API : BAPI 2011 Presentation : SF by
Netflix API : BAPI 2011 Presentation : SFNetflix API : BAPI 2011 Presentation : SF
Netflix API : BAPI 2011 Presentation : SFDaniel Jacobson
3K views33 slides
Presentation to ESPN about the Netflix API by
Presentation to ESPN about the Netflix APIPresentation to ESPN about the Netflix API
Presentation to ESPN about the Netflix APIDaniel Jacobson
2.2K views37 slides

More from Daniel Jacobson(13)

Netflix API: Keynote at Disney Tech Conference by Daniel Jacobson
Netflix API: Keynote at Disney Tech ConferenceNetflix API: Keynote at Disney Tech Conference
Netflix API: Keynote at Disney Tech Conference
Daniel Jacobson2.9K views
Netflix API - Presentation to PayPal by Daniel Jacobson
Netflix API - Presentation to PayPalNetflix API - Presentation to PayPal
Netflix API - Presentation to PayPal
Daniel Jacobson25.9K views
Techniques for Scaling the Netflix API - QCon SF by Daniel Jacobson
Techniques for Scaling the Netflix API - QCon SFTechniques for Scaling the Netflix API - QCon SF
Techniques for Scaling the Netflix API - QCon SF
Daniel Jacobson2.3K views
APIs for Internal Audiences - Netflix - App Dev Conference by Daniel Jacobson
APIs for Internal Audiences - Netflix - App Dev ConferenceAPIs for Internal Audiences - Netflix - App Dev Conference
APIs for Internal Audiences - Netflix - App Dev Conference
Daniel Jacobson1.7K views
Netflix API : BAPI 2011 Presentation : SF by Daniel Jacobson
Netflix API : BAPI 2011 Presentation : SFNetflix API : BAPI 2011 Presentation : SF
Netflix API : BAPI 2011 Presentation : SF
Daniel Jacobson3K views
Presentation to ESPN about the Netflix API by Daniel Jacobson
Presentation to ESPN about the Netflix APIPresentation to ESPN about the Netflix API
Presentation to ESPN about the Netflix API
Daniel Jacobson2.2K views
The future-of-netflix-api by Daniel Jacobson
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-api
Daniel Jacobson233.2K views
NPR Presentation at Wolfram Data Summit 2010 by Daniel Jacobson
NPR Presentation at Wolfram Data Summit 2010NPR Presentation at Wolfram Data Summit 2010
NPR Presentation at Wolfram Data Summit 2010
Daniel Jacobson1.5K views
NPR: Digital Distribution Strategy: OSCON2010 by Daniel Jacobson
NPR: Digital Distribution Strategy: OSCON2010NPR: Digital Distribution Strategy: OSCON2010
NPR: Digital Distribution Strategy: OSCON2010
Daniel Jacobson3.1K views
NPR's Digital Distribution and Mobile Strategy by Daniel Jacobson
NPR's Digital Distribution and Mobile StrategyNPR's Digital Distribution and Mobile Strategy
NPR's Digital Distribution and Mobile Strategy
Daniel Jacobson1.9K views

Recently uploaded

Cencora Executive Symposium by
Cencora Executive SymposiumCencora Executive Symposium
Cencora Executive Symposiummarketingcommunicati21
159 views14 slides
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...ShapeBlue
132 views13 slides
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TShapeBlue
152 views34 slides
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...ShapeBlue
159 views25 slides
CryptoBotsAI by
CryptoBotsAICryptoBotsAI
CryptoBotsAIchandureddyvadala199
40 views5 slides
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
90 views52 slides

Recently uploaded(20)

Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O... by ShapeBlue
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
Declarative Kubernetes Cluster Deployment with Cloudstack and Cluster API - O...
ShapeBlue132 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue152 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue159 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue186 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue252 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue180 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson160 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10139 views
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ by ShapeBlue
Confidence in CloudStack - Aron Wagner, Nathan Gleason - AmericConfidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
Confidence in CloudStack - Aron Wagner, Nathan Gleason - Americ
ShapeBlue130 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue119 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue221 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue123 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash158 views

Netflix API - Separation of Concerns

Editor's Notes

  1. Most companies focus on a small handful of device implementations, most notably Android and iOS devices.
  2. At Netflix, we have more than 1,000 different device types that we support. Across those devices, there is a high degree of variability. As a result, we have seen inefficiencies and problems emerge across our implementations. Those issues also translate into issues with the API interaction.
  3. For example, screen size could significantly affect what the API should deliver to the UI. TVs with bigger screens that can potentially fit more titles and more metadata per title than a mobile phone. Do we need to send all of the extra bits for fields or items that are not needed, requiring the device itself to drop items on the floor? Or can we optimize the deliver of those bits on a per-device basis?
  4. Different devices have different controlling functions as well. For devices with swipe technologies, such as the iPad, do we need to pre-load a lot of extra titles in case a user swipes the row quickly to see the last of 500 titles in their queue? Or for up-down-left-right controllers, would devices be more optimized by fetching a few items at a time when they are needed? Other devices support voice or hand gestures or pointer technologies. How might those impact the user experience and therefore the metadata needed to support them?
  5. The technical specs on these devices differ greatly. Some have significant memory space while others do not, impacting how much data can be handled at a given time. Processing power and hard-drive space could also play a role in how the UI performs, in turn potentially influencing the optimal way for fetching content from the API. All of these differences could result in different potential optimizations across these devices.
  6. Many UI teams needing metadata means many requests to the API team. In the one-size-fits-all API world, we essentially needed to funnel these requests and then prioritize them. That means that some teams would need to wait for API work to be done. It also meant that, because they all shared the same endpoints, we were often adding variations to the endpoints resulting in a more complex system as well as a lot of spaghetti code. Make teams wait due to prioritization was exacerbated by the fact that tasks took longer because the technical debt was increasing, causing time to build and test to increase. Moreover, many of the incoming requests were asking us to do more of the same kinds of customizations. This created a spiral that would be very difficult to break out of…
  7. Many other companies have seen similar issues and have introduced orchestration layers that enable more flexible interaction models.
  8. Odata, HYQL, ql.io, rest.li and others are examples of orchestration layers. They address the same problems that we have seen, but we have approached the solution in a very different way.
  9. We evolved our discussion towards what ultimately became a discussion between resource-based APIs and experience-based APIs.
  10. The original OSFA API was very resource oriented with granular requests for specific data, delivering specific documents in specific formats.
  11. The interaction model looked basically like this, with (in this example) the PS3 making many calls across the network to the OSFA API. The API ultimately called back to dependent services to get the corresponding data needed to satisfy the requests.
  12. In this mode, there is a very clear divide between the Client Code and the Server Code. That divide is the network border.
  13. And the responsibilities have the same distribution as well. The Client Code handles the rendering of the interface (as well as asking the server for data). The Server Code is responsible of gathering, formatting and delivering the data to the UIs.
  14. And ultimately, it works. The PS3 interface looks like this and was populated by this interaction model.
  15. But we believe this is not the optimal way to handle it. In fact, assembling a UI through many resource-based API calls is akin to pointillism paintings. The picture looks great when fully assembled, but it is done by assembling many points put together in the right way.
  16. We have decided to pursue an experience-based approach instead. Rather than making many API requests to assemble the PS3 home screen, the PS3 will potentially make a single request to a custom, optimized endpoint.
  17. In an experience-based interaction, the PS3 can potentially make asingle request across the network border to a scripting layer (currently Groovy), in this example to provide the data for the PS3 home screen. The call goes to a very specific, custom endpoint for the PS3 or for a shared UI. The Groovy script then interprets what is needed for the PS3 home screen and triggers a series of calls to the Java API running in the same JVM as the Groovy scripts. The Java API is essentially a series of methods that individually know how to gather the corresponding data from the dependent services. The Java API then returns the data to the Groovy script who then formats and delivers the very specific data back to the PS3.
  18. In this model, the border between Client Code and Server Code is no longer the network border. It is now back on the server. The Groovy is essentially a client adapter written by the client teams.
  19. And the distribution of work changes as well. The client teams continue to handle UI rendering, but now are also responsible for the formatting and delivery of content. The API team, in terms of the data side of things, is responsible for the data gathering and hand-off to the client adapters. Of course, the API team does many other things, including resiliency, scaling, dependency interactions, etc. This model is essentially a platform for API development.
  20. If resource-based APIs assemble data like pointillism, experience-based APIs assemble data like a photograph. The experience-based approach captures and delivers it all at once.