SlideShare uma empresa Scribd logo
1 de 34
APIs for an Internal Audience
       By Daniel Jacobson
        @daniel_jacobson
     djacobson@netflix.com

                        From the App Dev Conference
                        Santa Clara, CA
                        October 27, 2011
NPR API Requests by Audience
The NPR API Powered Products
Netflix API Requests by Audience
Netflix
 API
Netflix
 API
How does this translate into value?
NPR API : Page View Growth
Netflix API : Requests Per Month
                       35



                       30
Requests in Billions




                       25



                       20



                       15



                       10



                        5



                       -
                           Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11
What does all of this mean?
Public APIs




              Private APIs
Netflix API Requests by Audience
Personaliz
                          Movie     Movie     Similar             A/B Test
  ation      User Info                                  Reviews
 Engine
                         Metadata   Ratings   Movies               Engine
API




Personaliz
                          Movie     Movie     Similar             A/B Test
  ation      User Info                                  Reviews
 Engine
                         Metadata   Ratings   Movies               Engine
API




Personaliz
                          Movie     Movie     Similar             A/B Test
  ation      User Info                                  Reviews
 Engine
                         Metadata   Ratings   Movies               Engine
Netflix
 API
Redesigning the Netflix API
Key Goals of API Redesign
• Improve performance of devices
  – Reduce API transactions
  – Reduce payload size


• Improve ability to rapidly innovate on devices
  – Put the API in the hands of the UI teams
Netflix API : Requests Per Month
                       35



                       30
Requests in Billions




                       25



                       20



                       15



                       10



                        5



                       -
                           Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11
Growth of the Netflix API




 Over 1 Billion requests per day
   (Peaks at about 20,000 requests per second)
<catalog_titles>
 <number_of_results>1140</number_of_results>
 <start_index>0</start_index>
 <results_per_page>10</results_per_page>
 <catalog_title>
 <id>http://api.netflix.com/catalog/titles/movies/60021896</id><title short="Star" regular="Star"></title>
 <box_art small="http://alien2.netflix.com/us/boxshots/tiny/60021896.jpg"
          medium="http://alien2.netflix.com/us/boxshots/small/60021896.jpg"
          large="http://alien2.netflix.com/us/boxshots/large/60021896.jpg"></box_art>
 <link href="http://api.netflix.com/catalog/titles/movies/60021896/synopsis"
          rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link>
 <release_year>2001</release_year>
 <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="NR"></category>
 <category scheme="http://api.netflix.com/categories/genres" label="Foreign"></category>
 <link href="http://api.netflix.com/catalog/titles/movies/60021896/cast"
          rel="http://schemas.netflix.com/catalog/people.cast" title="cast"></link>
<link href="http://api.netflix.com/catalog/titles/movies/60021896/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen
formats"></link
 <link href="http://api.netflix.com/catalog/titles/movies/60021896/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio"
title="languages and audio"></link>
 <average_rating>1.9</average_rating>
 <link href="http://api.netflix.com/catalog/titles/movies/60021896/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link>
 <link href="http://www.netflix.com/Movie/Star/60021896" rel="alternate" title="webpage"></link>
 </catalog_title>
 <catalog_title>
 <id>http://api.netflix.com/catalog/titles/movies/17985448</id><title short="Lone Star" regular="Lone Star"></title>
 <box_art small="http://alien2.netflix.com/us/boxshots/tiny/17985448.jpg" medium="http://alien2.netflix.com/us/boxshots/small/17985448.jpg" large=""></box_art>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link>
 <release_year>1996</release_year>
 <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="R"></category>
 <category scheme="http://api.netflix.com/categories/genres" label="Drama"></category>
<link href="http://api.netflix.com/catalog/titles/movies/17985448/awards" rel="http://schemas.netflix.com/catalog/titles/awards" title="awards"></link>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/format_availability" rel="http://schemas.netflix.com/catalog/titles/format_availability"
title="formats"></link>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen
formats"></link>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio"
title="languages and audio"></link>
 <average_rating>3.7</average_rating>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/previews" rel="http://schemas.netflix.com/catalog/titles/previews" title="previews"></link>
 <link href="http://api.netflix.com/catalog/titles/movies/17985448/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link>
 <link href="http://www.netflix.com/Movie/Lone_Star/17985448" rel="alternate" title="webpage"></link>
 </catalog_title>
</catalog_titles>
{"catalog_title":
{"id":"http://api.netflix.com/catalog/titles/movies/60034967",
"title":{"title_short":"Rosencrantz and Guildenstern Are Dead",
"regular":"Rosencrantz and Guildenstern Are Dead"},
"maturity_level":60,
"release_year":"1990",
"average_rating":3.7,
"box_art":{"284pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/ghd/60034967.jpg",
"110pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/large/60034967.jpg",
"38pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/tiny/60034967.jpg",
"64pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/small/60034967.jpg",
"150pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/150/60034967.jpg",
"88pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/88/60034967.jpg",
"124pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/124/60034967.jpg"},
"language":"en",
"web_page":"http://www.netflix.com/Movie/Rosencrantz_and_Guildenstern_Are_Dead/60034967",
"tiny_url":"http://movi.es/ApUP9"},
"meta":{
"expand":["@directors","@bonus_materials","@cast","@awards","@short_synopsis","@synopsis","@box_art","@screen_formats","
@"links":{"id":"http://api.netflix.com/catalog/titles/movies/60034967",
"languages_and_audio":"http://api.netflix.com/catalog/titles/movies/60034967/languages_and_audio",
"title":"http://api.netflix.com/catalog/titles/movies/60034967/title",
"screen_formats":"http://api.netflix.com/catalog/titles/movies/60034967/screen_formats",
"cast":"http://api.netflix.com/catalog/titles/movies/60034967/cast",
"awards":"http://api.netflix.com/catalog/titles/movies/60034967/awards",
"short_synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/short_synopsis",
"box_art":"http://api.netflix.com/catalog/titles/movies/60034967/box_art",
"synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/synopsis",
"directors":"http://api.netflix.com/catalog/titles/movies/60034967/directors",
"similars":"http://api.netflix.com/catalog/titles/movies/60034967/similars",
"format_availability":"http://api.netflix.com/catalog/titles/movies/60034967/format_availability"}
}}
Improve Efficiency of API Requests




Could it have been 100 million requests per day? Or less?
             (Assuming everything else remained the same)
CLIENT APPS   API SERVER
                            AUTH

                            DEVICE
                            SETUP

                             TIME
                            SERVICE

                            INSTANT
                             QUEUE


                            LISTS


                           LIST ( i )


                            TITLES

                           LOGGING
CLIENT APPS          API SERVER
                                   AUTH
                 API
                                   DEVICE
              SCRIPTING            SETUP
                 TIER               TIME
                                   SERVICE

                CUSTOM             INSTANT
               ENDPOINT             QUEUE
                  PER
                 DEVICE            LISTS


                                  LIST ( i )


                                   TITLES

                                  LOGGING
API Billionaires Club
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
5 billion API calls / day     (April 2010)



5 billion API calls / day     (October 2009)



1 billion API calls / day (October 2011)

8 billion API calls / month (Q3 2009)

3.2 billion API-delivered stories / month              (October
2011)

3 billion API calls / month (March 2009)


                       Courtesy of John Musser, ProgrammableWeb
API Billionaires Club
13 billion API calls / day (May 2011)
Over 260 billion objects stored in S3 (January 2011)
5 billion API calls / day     (April 2010)



5 billion API calls / day     (October 2009)



1 billion API calls / day (October 2011)

8 billion API calls / month (Q3 2009)

3.2 billion API-delivered stories / month              (October
2011)

3 billion API calls / month (March 2009)


                       Courtesy of John Musser, ProgrammableWeb
If you are interested in helping us solve these
       problems, please contact me at:

           Daniel Jacobson
          djacobson@netflix.com
             @daniel_jacobson
http://www.linkedin.com/in/danieljacobson
 http://www.slideshare.net/danieljacobson

Mais conteúdo relacionado

Mais procurados

Maintaining the Netflix Front Door - Presentation at Intuit Meetup
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
 
Scaling the Netflix API - OSCON
Scaling the Netflix API - OSCONScaling the Netflix API - OSCON
Scaling the Netflix API - OSCONDaniel Jacobson
 
Netflix API - Presentation to PayPal
Netflix API - Presentation to PayPalNetflix API - Presentation to PayPal
Netflix API - Presentation to PayPalDaniel Jacobson
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-apiDaniel Jacobson
 
Scaling the Netflix API - From Atlassian Dev Den
Scaling the Netflix API - From Atlassian Dev DenScaling the Netflix API - From Atlassian Dev Den
Scaling the Netflix API - From Atlassian Dev DenDaniel Jacobson
 
History and Future of the Netflix API - Mashery Evolution of Distribution
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 DistributionDaniel Jacobson
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
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
 
Netflix API - Separation of Concerns
Netflix API - Separation of ConcernsNetflix API - Separation of Concerns
Netflix API - Separation of ConcernsDaniel Jacobson
 
Maintaining the Front Door to Netflix
Maintaining the Front Door to NetflixMaintaining the Front Door to Netflix
Maintaining the Front Door to NetflixBenjamin Schmaus
 
Why API? - Business of APIs Conference
Why API? - Business of APIs ConferenceWhy API? - Business of APIs Conference
Why API? - Business of APIs ConferenceDaniel Jacobson
 
API Design - When to buck the trend (Webcast)
API Design - When to buck the trend (Webcast)API Design - When to buck the trend (Webcast)
API Design - When to buck the trend (Webcast)Apigee | Google Cloud
 
Migrating Automation Tests to Postman Monitors and ROI
Migrating Automation Tests to Postman Monitors and ROIMigrating Automation Tests to Postman Monitors and ROI
Migrating Automation Tests to Postman Monitors and ROIPostman
 
Essential API Facade Patterns - Composition (Episode 1)
Essential API Facade Patterns - Composition (Episode 1)Essential API Facade Patterns - Composition (Episode 1)
Essential API Facade Patterns - Composition (Episode 1)Apigee | Google Cloud
 
The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1Apigee | Google Cloud
 
The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3Apigee | Google Cloud
 
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)Apigee | Google Cloud
 
W2E NY 2010 NPR Everywhere
W2E NY 2010 NPR EverywhereW2E NY 2010 NPR Everywhere
W2E NY 2010 NPR Everywherezachbrand
 

Mais procurados (20)

Maintaining the Netflix Front Door - Presentation at Intuit Meetup
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
 
Scaling the Netflix API - OSCON
Scaling the Netflix API - OSCONScaling the Netflix API - OSCON
Scaling the Netflix API - OSCON
 
Netflix API - Presentation to PayPal
Netflix API - Presentation to PayPalNetflix API - Presentation to PayPal
Netflix API - Presentation to PayPal
 
Netflix API
Netflix APINetflix API
Netflix API
 
The future-of-netflix-api
The future-of-netflix-apiThe future-of-netflix-api
The future-of-netflix-api
 
Scaling the Netflix API - From Atlassian Dev Den
Scaling the Netflix API - From Atlassian Dev DenScaling the Netflix API - From Atlassian Dev Den
Scaling the Netflix API - From Atlassian Dev Den
 
History and Future of the Netflix API - Mashery Evolution of Distribution
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
 
Top 10 Lessons Learned from the Netflix API - OSCON 2014
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
 
Netflix API - Separation of Concerns
Netflix API - Separation of ConcernsNetflix API - Separation of Concerns
Netflix API - Separation of Concerns
 
Maintaining the Front Door to Netflix
Maintaining the Front Door to NetflixMaintaining the Front Door to Netflix
Maintaining the Front Door to Netflix
 
Why API? - Business of APIs Conference
Why API? - Business of APIs ConferenceWhy API? - Business of APIs Conference
Why API? - Business of APIs Conference
 
Huge: Running an API at Scale
Huge: Running an API at ScaleHuge: Running an API at Scale
Huge: Running an API at Scale
 
API Trends: What to expect in 2012
API Trends: What to expect in 2012API Trends: What to expect in 2012
API Trends: What to expect in 2012
 
API Design - When to buck the trend (Webcast)
API Design - When to buck the trend (Webcast)API Design - When to buck the trend (Webcast)
API Design - When to buck the trend (Webcast)
 
Migrating Automation Tests to Postman Monitors and ROI
Migrating Automation Tests to Postman Monitors and ROIMigrating Automation Tests to Postman Monitors and ROI
Migrating Automation Tests to Postman Monitors and ROI
 
Essential API Facade Patterns - Composition (Episode 1)
Essential API Facade Patterns - Composition (Episode 1)Essential API Facade Patterns - Composition (Episode 1)
Essential API Facade Patterns - Composition (Episode 1)
 
The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1
 
The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3
 
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)
Essential API Facade Patterns: One Phase to Two Phase Conversion (Episode 3)
 
W2E NY 2010 NPR Everywhere
W2E NY 2010 NPR EverywhereW2E NY 2010 NPR Everywhere
W2E NY 2010 NPR Everywhere
 

Destaque

Canary Analyze All the Things
Canary Analyze All the ThingsCanary Analyze All the Things
Canary Analyze All the Thingsroyrapoport
 
Netflix Edge Engineering Open House Presentations - June 9, 2016
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
 
Maintaining the Front Door to Netflix : The Netflix API
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
 
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleSudhir Tonse
 

Destaque (6)

Canary Analyze All the Things
Canary Analyze All the ThingsCanary Analyze All the Things
Canary Analyze All the Things
 
Netflix Edge Engineering Open House Presentations - June 9, 2016
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
 
Maintaining the Front Door to Netflix : The Netflix API
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
 
From SOA to MSA
From SOA to MSAFrom SOA to MSA
From SOA to MSA
 
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scale
 
Culture
CultureCulture
Culture
 

Semelhante a APIs for Internal Audiences - Netflix - App Dev Conference

API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at NetflixMichael Hart
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させようYuki Hattori
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxBlockchainizator
 
Postman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote PresentationPostman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote PresentationPostman
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Gabriel Ortiz
 
Gluecon 2013 netflix api crash course
Gluecon 2013   netflix api crash courseGluecon 2013   netflix api crash course
Gluecon 2013 netflix api crash courseBenjamin Schmaus
 
Open APIs - State of the Market 2011
Open APIs - State of the Market 2011Open APIs - State of the Market 2011
Open APIs - State of the Market 2011John Musser
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010John Musser
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Atlassian
 
2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asankaWSO2
 
Business of APIs Conference 2011 - Netflix
Business of APIs Conference 2011 - NetflixBusiness of APIs Conference 2011 - Netflix
Business of APIs Conference 2011 - NetflixMashery
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventSudhir Tonse
 
A Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebA Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebAlessandro Bozzon
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncYan Cui
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 
Move Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APIMove Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APISangeeta Narayanan
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIsSmartBear
 
Think like a Platform - EDC 2012
Think like a Platform - EDC 2012Think like a Platform - EDC 2012
Think like a Platform - EDC 2012Delyn Simons
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011John Musser
 

Semelhante a APIs for Internal Audiences - Netflix - App Dev Conference (20)

API Strategy Evolution at Netflix
API Strategy Evolution at NetflixAPI Strategy Evolution at Netflix
API Strategy Evolution at Netflix
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
 
Postman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote PresentationPostman Galaxy Tour - Keynote Presentation
Postman Galaxy Tour - Keynote Presentation
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1
 
Gluecon 2013 netflix api crash course
Gluecon 2013   netflix api crash courseGluecon 2013   netflix api crash course
Gluecon 2013 netflix api crash course
 
Open APIs - State of the Market 2011
Open APIs - State of the Market 2011Open APIs - State of the Market 2011
Open APIs - State of the Market 2011
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
Extend Your Use of JIRA by Solving Your Unique Concerns: An Exposé of the New...
 
2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka2013 02-apache conna-api-manager-asanka
2013 02-apache conna-api-manager-asanka
 
Business of APIs Conference 2011 - Netflix
Business of APIs Conference 2011 - NetflixBusiness of APIs Conference 2011 - Netflix
Business of APIs Conference 2011 - Netflix
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
 
A Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebA Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the Web
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to find
 
Move Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix APIMove Fast;Stay Safe:Developing & Deploying the Netflix API
Move Fast;Stay Safe:Developing & Deploying the Netflix API
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
 
Think like a Platform - EDC 2012
Think like a Platform - EDC 2012Think like a Platform - EDC 2012
Think like a Platform - EDC 2012
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011
 

Mais de Daniel Jacobson

NPR Presentation at Wolfram Data Summit 2010
NPR Presentation at Wolfram Data Summit 2010NPR Presentation at Wolfram Data Summit 2010
NPR Presentation at Wolfram Data Summit 2010Daniel Jacobson
 
NPR: Digital Distribution Strategy: OSCON2010
NPR: Digital Distribution Strategy: OSCON2010NPR: Digital Distribution Strategy: OSCON2010
NPR: Digital Distribution Strategy: OSCON2010Daniel Jacobson
 
NPR's Digital Distribution and Mobile Strategy
NPR's Digital Distribution and Mobile StrategyNPR's Digital Distribution and Mobile Strategy
NPR's Digital Distribution and Mobile StrategyDaniel Jacobson
 
NPR API Usage and Metrics
NPR API Usage and MetricsNPR API Usage and Metrics
NPR API Usage and MetricsDaniel Jacobson
 
OpenID Adoption UX Summit
OpenID Adoption UX SummitOpenID Adoption UX Summit
OpenID Adoption UX SummitDaniel Jacobson
 

Mais de Daniel Jacobson (6)

NPR Presentation at Wolfram Data Summit 2010
NPR Presentation at Wolfram Data Summit 2010NPR Presentation at Wolfram Data Summit 2010
NPR Presentation at Wolfram Data Summit 2010
 
NPR: Digital Distribution Strategy: OSCON2010
NPR: Digital Distribution Strategy: OSCON2010NPR: Digital Distribution Strategy: OSCON2010
NPR: Digital Distribution Strategy: OSCON2010
 
NPR's Digital Distribution and Mobile Strategy
NPR's Digital Distribution and Mobile StrategyNPR's Digital Distribution and Mobile Strategy
NPR's Digital Distribution and Mobile Strategy
 
NPR API Usage and Metrics
NPR API Usage and MetricsNPR API Usage and Metrics
NPR API Usage and Metrics
 
OpenID Adoption UX Summit
OpenID Adoption UX SummitOpenID Adoption UX Summit
OpenID Adoption UX Summit
 
NPR : Examples of COPE
NPR : Examples of COPENPR : Examples of COPE
NPR : Examples of COPE
 

Último

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Último (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

APIs for Internal Audiences - Netflix - App Dev Conference

  • 1. APIs for an Internal Audience By Daniel Jacobson @daniel_jacobson djacobson@netflix.com From the App Dev Conference Santa Clara, CA October 27, 2011
  • 2. NPR API Requests by Audience
  • 3.
  • 4. The NPR API Powered Products
  • 5. Netflix API Requests by Audience
  • 8. How does this translate into value?
  • 9. NPR API : Page View Growth
  • 10. Netflix API : Requests Per Month 35 30 Requests in Billions 25 20 15 10 5 - Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11
  • 11. What does all of this mean?
  • 12. Public APIs Private APIs
  • 13.
  • 14. Netflix API Requests by Audience
  • 15.
  • 16. Personaliz Movie Movie Similar A/B Test ation User Info Reviews Engine Metadata Ratings Movies Engine
  • 17. API Personaliz Movie Movie Similar A/B Test ation User Info Reviews Engine Metadata Ratings Movies Engine
  • 18. API Personaliz Movie Movie Similar A/B Test ation User Info Reviews Engine Metadata Ratings Movies Engine
  • 21. Key Goals of API Redesign • Improve performance of devices – Reduce API transactions – Reduce payload size • Improve ability to rapidly innovate on devices – Put the API in the hands of the UI teams
  • 22. Netflix API : Requests Per Month 35 30 Requests in Billions 25 20 15 10 5 - Jan-10 Feb-10 Mar-10 Apr-10 May-10 Jun-10 Jul-10 Aug-10 Sep-10 Oct-10 Nov-10 Dec-10 Jan-11 Feb-11 Mar-11 Apr-11 May-11 Jun-11 Jul-11
  • 23. Growth of the Netflix API Over 1 Billion requests per day (Peaks at about 20,000 requests per second)
  • 24.
  • 25. <catalog_titles> <number_of_results>1140</number_of_results> <start_index>0</start_index> <results_per_page>10</results_per_page> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/60021896</id><title short="Star" regular="Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/60021896.jpg" medium="http://alien2.netflix.com/us/boxshots/small/60021896.jpg" large="http://alien2.netflix.com/us/boxshots/large/60021896.jpg"></box_art> <link href="http://api.netflix.com/catalog/titles/movies/60021896/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link> <release_year>2001</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="NR"></category> <category scheme="http://api.netflix.com/categories/genres" label="Foreign"></category> <link href="http://api.netflix.com/catalog/titles/movies/60021896/cast" rel="http://schemas.netflix.com/catalog/people.cast" title="cast"></link> <link href="http://api.netflix.com/catalog/titles/movies/60021896/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link <link href="http://api.netflix.com/catalog/titles/movies/60021896/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>1.9</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/60021896/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Star/60021896" rel="alternate" title="webpage"></link> </catalog_title> <catalog_title> <id>http://api.netflix.com/catalog/titles/movies/17985448</id><title short="Lone Star" regular="Lone Star"></title> <box_art small="http://alien2.netflix.com/us/boxshots/tiny/17985448.jpg" medium="http://alien2.netflix.com/us/boxshots/small/17985448.jpg" large=""></box_art> <link href="http://api.netflix.com/catalog/titles/movies/17985448/synopsis" rel="http://schemas.netflix.com/catalog/titles/synopsis" title="synopsis"></link> <release_year>1996</release_year> <category scheme="http://api.netflix.com/catalog/titles/mpaa_ratings" label="R"></category> <category scheme="http://api.netflix.com/categories/genres" label="Drama"></category> <link href="http://api.netflix.com/catalog/titles/movies/17985448/awards" rel="http://schemas.netflix.com/catalog/titles/awards" title="awards"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/format_availability" rel="http://schemas.netflix.com/catalog/titles/format_availability" title="formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/screen_formats" rel="http://schemas.netflix.com/catalog/titles/screen_formats" title="screen formats"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/languages_and_audio" rel="http://schemas.netflix.com/catalog/titles/languages_and_audio" title="languages and audio"></link> <average_rating>3.7</average_rating> <link href="http://api.netflix.com/catalog/titles/movies/17985448/previews" rel="http://schemas.netflix.com/catalog/titles/previews" title="previews"></link> <link href="http://api.netflix.com/catalog/titles/movies/17985448/similars" rel="http://schemas.netflix.com/catalog/titles.similars" title="similars"></link> <link href="http://www.netflix.com/Movie/Lone_Star/17985448" rel="alternate" title="webpage"></link> </catalog_title> </catalog_titles>
  • 26. {"catalog_title": {"id":"http://api.netflix.com/catalog/titles/movies/60034967", "title":{"title_short":"Rosencrantz and Guildenstern Are Dead", "regular":"Rosencrantz and Guildenstern Are Dead"}, "maturity_level":60, "release_year":"1990", "average_rating":3.7, "box_art":{"284pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/ghd/60034967.jpg", "110pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/large/60034967.jpg", "38pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/tiny/60034967.jpg", "64pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/small/60034967.jpg", "150pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/150/60034967.jpg", "88pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/88/60034967.jpg", "124pix_w":"http://cdn-7.nflximg.com/en_US/boxshots/124/60034967.jpg"}, "language":"en", "web_page":"http://www.netflix.com/Movie/Rosencrantz_and_Guildenstern_Are_Dead/60034967", "tiny_url":"http://movi.es/ApUP9"}, "meta":{ "expand":["@directors","@bonus_materials","@cast","@awards","@short_synopsis","@synopsis","@box_art","@screen_formats"," @"links":{"id":"http://api.netflix.com/catalog/titles/movies/60034967", "languages_and_audio":"http://api.netflix.com/catalog/titles/movies/60034967/languages_and_audio", "title":"http://api.netflix.com/catalog/titles/movies/60034967/title", "screen_formats":"http://api.netflix.com/catalog/titles/movies/60034967/screen_formats", "cast":"http://api.netflix.com/catalog/titles/movies/60034967/cast", "awards":"http://api.netflix.com/catalog/titles/movies/60034967/awards", "short_synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/short_synopsis", "box_art":"http://api.netflix.com/catalog/titles/movies/60034967/box_art", "synopsis":"http://api.netflix.com/catalog/titles/movies/60034967/synopsis", "directors":"http://api.netflix.com/catalog/titles/movies/60034967/directors", "similars":"http://api.netflix.com/catalog/titles/movies/60034967/similars", "format_availability":"http://api.netflix.com/catalog/titles/movies/60034967/format_availability"} }}
  • 27. Improve Efficiency of API Requests Could it have been 100 million requests per day? Or less? (Assuming everything else remained the same)
  • 28. CLIENT APPS API SERVER AUTH DEVICE SETUP TIME SERVICE INSTANT QUEUE LISTS LIST ( i ) TITLES LOGGING
  • 29. CLIENT APPS API SERVER AUTH API DEVICE SCRIPTING SETUP TIER TIME SERVICE CUSTOM INSTANT ENDPOINT QUEUE PER DEVICE LISTS LIST ( i ) TITLES LOGGING
  • 30. API Billionaires Club 13 billion API calls / day (May 2011) Over 260 billion objects stored in S3 (January 2011) 5 billion API calls / day (April 2010) 5 billion API calls / day (October 2009) 1 billion API calls / day (October 2011) 8 billion API calls / month (Q3 2009) 3.2 billion API-delivered stories / month (October 2011) 3 billion API calls / month (March 2009) Courtesy of John Musser, ProgrammableWeb
  • 31. API Billionaires Club 13 billion API calls / day (May 2011) Over 260 billion objects stored in S3 (January 2011) 5 billion API calls / day (April 2010) 5 billion API calls / day (October 2009) 1 billion API calls / day (October 2011) 8 billion API calls / month (Q3 2009) 3.2 billion API-delivered stories / month (October 2011) 3 billion API calls / month (March 2009) Courtesy of John Musser, ProgrammableWeb
  • 32.
  • 33.
  • 34. If you are interested in helping us solve these problems, please contact me at: Daniel Jacobson djacobson@netflix.com @daniel_jacobson http://www.linkedin.com/in/danieljacobson http://www.slideshare.net/danieljacobson

Notas do Editor

  1. To demonstrate the importance of knowing your audience when offering an API, I will be drawing from my current Netflix experience as well as from NPR, my previous employer. Although these two cases may not represent all companies, I do believe that they jointly offer a perspective that is useful when considering API development and strategy.
  2. The NPR API has several distinct audiences. By the time I left NPR a year ago, the public developer community occupied the overwhelming number of API keys, but represented a sliver of the overall API consumption, as measured by API requests. The inverse is the case, however, for internal NPR development teams.
  3. The great number of public developers have produced a wide range of apps on a range of platforms. All of them, in total, account for a very small percentage of the overall consumption.
  4. Comparing this to Netflix, the distribution on both charts is basically the same, with two differences: 1. Netflix has a lot more API traffic. 2. The distribution is more extreme
  5. Similarly, Netflix has a public developer community, which was the target audience for the API when it launched (we called this the “let 1,000 flowers bloom” model). In fact, when the API first launched, 100% of its traffic came from the flowers.
  6. Over time, however, devices started to consume the API. Now we have hundreds of devices running off of the API. The 1,000 flowers are still there, but today, they account for less than .3% of the total API traffic, as measured by requests.
  7. For NPR, we were able to grow the overall page view growth by 100% in a single year. Over 80% of that growth was due to API-enabled mobile products. The development of the mobile products would have been much more difficult without the API. This kind of growth would not have been possible without the API.
  8. Similarly, Netflix’s growth chart goes up and to the right. But again, the numbers are bigger and the growth more extreme. In 18 months, the Netflix API grew by more than 50x. This growth can be attributed to an increase in devices using the API, an increase in adoption of those devices by Netflix customers, an increase in Netflix customers, and a changing request pattern for some of those devices to better serve our customers. So, the API growth is a proxy for the growth of the Netflix streaming service. Without the API, the growth of the Netflix streaming service likely would have been much less dramatic.
  9. These metrics demonstrate that the API world for many companies is similar to an iceberg. Public APIs represent a relatively small percentage of the value for the company, but they are typically the most visible part of the API program. They equate to the small part of the iceberg that is above water, in open sight. Conversely, the private APIs that drive web sites, mobile phones, device implementations, etc. account for the vast majority of the value for many companies, although people outside of the company often are not aware of them. These APIs equate to the large, hard to see mass of ice underwater. In the API space, most companies get attracted to the tip of the iceberg because that is what they are aware of. As a result, many companies seek to pursue a public API program. Over time, however, after more inspection into the value propositions of APIs, it becomes clear to many that the greatest value is in the private APIs.
  10. From the iceberg theory, the key takeaway from these metrics is to understand your audience. From that, many other questions surface, but the answers to them are much clearer if you know who your audiences are. Whichaudiences are the top priorities?How should you design your organization to satisfy these audiences?What is your resource allocation going to be for each audience? What expectations are you setting for each of these audiences?Howwill the audience prioritizations influence the design of the API?
  11. For Netflix, the internal development teams who build and/or manage the Netflix-branded device implementations are very clearly the top priority.
  12. This overwhelming priority has a tremendous affect on the Netflix engineering organization. Here are a few examples of the devices that are built/managed by internal Netflix teams. There are several distinct teams who build/manage the development for the hundreds of device implementations in the marketplace.
  13. Those device implementations have a range of metadata about movies and TV shows that they need in order to create rich experiences to the users. That information is managed by a range of internal engineering teams. Some of these teams manage databases with movie metadata or user information, while others handle complex algorithmic data, such as movie recommendations, etc.
  14. The API sits in between those two groups of engineering teams, drawing the information from the metadata/algorithm teams and delivering it to the various devices.
  15. The API sits very much in the critical path of the overall Netflix streaming service. As a result, the API is in the DNA of the Netflix engineering culture.
  16. The great thing about the API is that it is central to the Netflix streaming service. The issue, however, is that the current API is still designed for its original audience (the public developer community). In other words, even though the API is proving to be very successful, it is not designed for the highest priority audience.
  17. In essence, while the current API is capable of serving us in the way we need, it is no longer the best tool for the job. This is especially the case as the streaming service grows and expands to new international regions. We believe we can do much better with a new API that is designed for the future of Netflix.
  18. We already talked about the tremendous growth in API requests…
  19. Metrics like 1B requests per day sound great, don’t they? Many companies would love to see numbers like this. The reality is that this number is concerning…
  20. For a web site like NPR’s, it would be tremendous to have 1B requests per day (or per month). Growing request counts for web sites can produce great opportunity for ad impressions which translates directly into revenue.
  21. But the output of an API looks more like this…
  22. Or this…For APIs, ad impressions are not part of the game. As a result, the increase in requests don’t translate into more revenue. In fact, they translate into more expenses. That is, to handle more requests requires more servers, more systems-admins, a potentially different application architecture, etc.
  23. As a result, we are challenging ourselves to redesign the API to see if those same 1B requests per day could have been 100M per day, or perhaps even less. Through more targeted API designs based on what we have learned through our metrics, we will be able to reduce our API traffic as Netflix’ overall traffic grows.
  24. Because of itsgranular REST-ful resource model, the current Netflix API model requires a many devices to call these resources individually, often in a synchronous manner. To load a device screen, it often requires a dozen or more requests across the network. The problem is that the network transaction is often the most expensive part of the transactions, so the more requests to the API from the device, the slower the load times for the devices screens.
  25. In the new model, we will be changing our approach to solve this problem, moving away from traditional REST approaches. Ideally, the devices will be making just one request to the API servers to get everything it needs. The API will scripting tier then explode the one request into the many needed to get the data. Once the data is captured by the API from these various servers, the API will deliver the output back to the device in a single payload. There are a range of benefits from this scripting tier, as follows: 1. It allows us to have one network transaction with the majority of the work happening on the server rather than across HTTP. 2.It allows for dynamic updates to API interactions, which enable faster innovation as the scripts will be managed by the UI teams and dynamically compiled into the JVM. 3. It allows for very targeted payloads for each API call to diminish byte counts. 4. It allows each device to take advantage of its own capabilities without being constrained by generic API modeling. 5. It allows for easy development of custom formatting that may be specific to devices.
  26. Today, the Netflix API is among the leaders in the API Billionaires Club, a growing list compiled by John Musser of ProgrammableWeb.com.
  27. Our goal, if we are successful in changing the interaction model between the devices and the API, is to no longer be part of that club.
  28. If we achieve that goal, all of our devices should run much faster.
  29. Which, in turn, will help keep our customers happy.