Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
By Daniel Jacobson@daniel_jacobson The Structure of API Revolutions                           Image courtesy of SakeThrajan
There are comments on each slide in the Notes field belowproviding the full context of this           presentation
Scientific Discovery            Predominant ViewTime
Eventually…
Scientific Practice                      Kuhn’s View   AssumptionTime
Image courtesy of Niko Lang
Scientific Practice                                Kuhn’s ViewExperiments on Current Assumption      Assumption  Time
Scientific Practice                                Kuhn’s ViewExperiments on Current Assumption   Anomalies from Experimen...
Phases of Venus
Scientific Practice                                Kuhn’s ViewExperiments on Current Assumption   Anomalies from Experimen...
Image courtesy of Niko Lang
Scientific Practice                                Kuhn’s ViewExperiments on Current Assumption   Anomalies from Experimen...
Scientific Practice                                Kuhn’s ViewExperiments on Current Assumption   Anomalies from Experimen...
The Structure of API Revolutions                          Image courtesy of SakeThrajan
Image courtesy of ProgrammableWeb.com
Image courtesy of Romin Irani
Your content?
Streaming
More than 33 Million SubscribersMore than 50 Countries & Territories
Netflix Accounts for 33% of Peak Internet Traffic in North AmericaNetflix subscribers are watching more than 1 billion hou...
45                      41.7                      40                      35                      30Request in Billions   ...
2007
Netflix REST API:One-Size-Fits-All (OSFA)       Solution
Image courtesy of Jay Mac 3 on Flickr
Netflix API Requests by Audience          At Launch In 2008                               External                        ...
Image courtesy of Jay Mac 3 on Flickr
Netflix API Requests by Audience             From 2011                            External                           Devel...
APIPersonaliz                          Movie     Movie     Similar             A/B Test  ation      User Info             ...
“APIs are a means to an end”          Laura Merling       February 21, 2013     API Strategy Conference
Revolution in Audience Revolution in Design
Areas of Focus• Chattiness• Variability Across Devices• Innovation Rates
Chattiness
Growth of Netflix API Requests                      45                                                                 41....
Growth of the Netflix API    2 billion requests per day Exploding out to 14 billion dependency calls per day
<catalog_titles> <number_of_results>1140</number_of_results> <start_index>0</start_index> <results_per_page>10</results_pe...
{"catalog_title":{"id":"http://api.netflix.com/catalog/titles/movies/60034967","title":{"title_short":"Rosencrantz and Gui...
What if the API request growth rate                                looks like this???                      160            ...
Improve Efficiency of API RequestsCould it have been 300 million requests per day? Or less?             (Assuming everythi...
Variability Across Devices
Screen Real Estate
Controller
Technical Capabilities
Innovation Rates
Request              Request    RequestOne-Size-Fits-All      API
Our Solution…
Move away from theOne-Size-Fits-All API model
Resource-Based API        vs.Experience-Based API
Resource-Based Requests•   /users/<id>/ratings/title•   /users/<id>/queues•   /users/<id>/queues/instant•   /users/<id>/re...
Network Border                                       Network Border                            OSFA API        START-     ...
CLIENT CODE Network Border                                       Network Border                            OSFA API       ...
USER INTERFACE                    RENDERING Network Border                                        Network Border          ...
Experience-Based Requests• /ps3/homescreen
Network Border                                       Network Border                                                       ...
CLIENT CODE Network Border                                             Network Border        CLIENT ADAPTER CODE         (...
USER INTERFACE                    RENDERING Network Border                                         Network Border         ...
Recipe for Targeted APIsAPI providers that have a:• small number of targeted API consumers• very close relationships betwe...
Recipe for Targeted APIsAPI providers that have a:• small number of targeted API consumers• very close relationships betwe...
Image courtesy of johnt HDRcreme
Image courtesy of KK+ on Flickr
Image courtesy of SakeThrajan
Image courtesy of Mars
The Structure of API Revolutoins@daniel_jacobsondjacobson@netflix.comhttp://www.linkedin.com/in/danieljacobsonhttp://www.s...
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
API Revolutions : Netflix's API Redesign
Upcoming SlideShare
Loading in …5
×

API Revolutions : Netflix's API Redesign

24,987 views

Published on

Revolutions have a common pattern in technology and this is no different for the API space. This presentation discusses that pattern and goes through various API revolutions. It also uses Netflix as an example of how some revolutions evolved and where things may be headed.

Published in: Technology

API Revolutions : Netflix's API Redesign

  1. By Daniel Jacobson@daniel_jacobson The Structure of API Revolutions Image courtesy of SakeThrajan
  2. There are comments on each slide in the Notes field belowproviding the full context of this presentation
  3. Scientific Discovery Predominant ViewTime
  4. Eventually…
  5. Scientific Practice Kuhn’s View AssumptionTime
  6. Image courtesy of Niko Lang
  7. Scientific Practice Kuhn’s ViewExperiments on Current Assumption Assumption Time
  8. Scientific Practice Kuhn’s ViewExperiments on Current Assumption Anomalies from Experiments Assumption Time
  9. Phases of Venus
  10. Scientific Practice Kuhn’s ViewExperiments on Current Assumption Anomalies from Experiments New Assumption Assumption Assumption Time
  11. Image courtesy of Niko Lang
  12. Scientific Practice Kuhn’s ViewExperiments on Current Assumption Anomalies from Experiments New Assumption Scientific Revolution Assumption Assumption Time
  13. Scientific Practice Kuhn’s ViewExperiments on Current Assumption Anomalies from Experiments New Paradigm Assumption Assumption Assumption Assumption Assumption Assumption Assumption Assumption Time
  14. The Structure of API Revolutions Image courtesy of SakeThrajan
  15. Image courtesy of ProgrammableWeb.com
  16. Image courtesy of Romin Irani
  17. Your content?
  18. Streaming
  19. More than 33 Million SubscribersMore than 50 Countries & Territories
  20. Netflix Accounts for 33% of Peak Internet Traffic in North AmericaNetflix subscribers are watching more than 1 billion hours a month
  21. 45 41.7 40 35 30Request in Billions 25 20.7 20 15 10 5 0.6 - Jan-10 Jan-11 Jan-12 SCALE
  22. 2007
  23. Netflix REST API:One-Size-Fits-All (OSFA) Solution
  24. Image courtesy of Jay Mac 3 on Flickr
  25. Netflix API Requests by Audience At Launch In 2008 External Developers
  26. Image courtesy of Jay Mac 3 on Flickr
  27. Netflix API Requests by Audience From 2011 External Developers
  28. APIPersonaliz Movie Movie Similar A/B Test ation User Info Reviews Engine Metadata Ratings Movies Engine
  29. “APIs are a means to an end” Laura Merling February 21, 2013 API Strategy Conference
  30. Revolution in Audience Revolution in Design
  31. Areas of Focus• Chattiness• Variability Across Devices• Innovation Rates
  32. Chattiness
  33. Growth of Netflix API Requests 45 41.7 40 70x growth in two years! 35Request in Billions 30 25 20.7 20 15 10 5 0.6 - Jan-10 Jan-11 Jan-12
  34. Growth of the Netflix API 2 billion requests per day Exploding out to 14 billion dependency calls per day
  35. <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="screenformats"></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="screenformats"></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>
  36. {"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"}}}
  37. What if the API request growth rate looks like this??? 160 140 Is this good for the long run??? 120Request is Billions 100 80 60 40 20 -
  38. Improve Efficiency of API RequestsCould it have been 300 million requests per day? Or less? (Assuming everything else remained the same)
  39. Variability Across Devices
  40. Screen Real Estate
  41. Controller
  42. Technical Capabilities
  43. Innovation Rates
  44. Request Request RequestOne-Size-Fits-All API
  45. Our Solution…
  46. Move away from theOne-Size-Fits-All API model
  47. Resource-Based API vs.Experience-Based API
  48. 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
  49. Network Border Network Border OSFA API START- A/B MEMBER RECOMME MOVIE SIMILARAUTH NDATIONS RATINGS UP TESTS DATA DATA MOVIES
  50. CLIENT CODE Network Border Network Border OSFA API SERVER CODE START- A/B MEMBER RECOMME MOVIE SIMILARAUTH NDATIONS RATINGS UP TESTS DATA DATA MOVIES
  51. USER INTERFACE RENDERING Network Border Network Border DATA GATHERING, OSFA API FORMATTING,AUTH START- UP AND DELIVERY A/B TESTS MEMBER DATA RECOMME NDATIONS MOVIE DATA RATINGS SIMILAR MOVIES
  52. Experience-Based Requests• /ps3/homescreen
  53. Network Border Network Border Groovy Layer JAVA API START- A/B MEMBER RECOMME MOVIE SIMILARAUTH NDATIONS RATINGS UP TESTS DATA DATA MOVIES
  54. CLIENT CODE Network Border Network Border CLIENT ADAPTER CODE (WRITTEN BY CLIENT TEAMS, DYNAMICALLY UPLOADED TO SERVER) JAVA APIAUTH START- SERVER CODE A/B MEMBER RECOMME NDATIONSA ZXSXX C MOVIE RATINGS SIMILAR UP TESTS DATA DATA MOVIES CCC
  55. USER INTERFACE RENDERING Network Border Network Border DATA FORMATTING AND DELIVERY JAVA APIAUTH START- DATA GATHERING A/B MEMBER RECOMME NDATIONSA ZXSXX C MOVIE RATINGS SIMILAR UP TESTS DATA DATA MOVIES CCC
  56. Recipe for Targeted APIsAPI providers that have a:• small number of targeted API consumers• very close relationships between with API consumers• increasing divergence of needs across these API consumers• strong desire for optimization by the API consumers• optimized APIs offer high value proposition
  57. Recipe for Targeted APIsAPI providers that have a:• small number of targeted API consumers• very close relationships between with API consumers• increasing divergence of needs across these API consumers• strong desire for optimization by the API consumers• optimized APIs offer high value proposition• a generous helping of chocolate (to keep engineers happy)
  58. Image courtesy of johnt HDRcreme
  59. Image courtesy of KK+ on Flickr
  60. Image courtesy of SakeThrajan
  61. Image courtesy of Mars
  62. The Structure of API Revolutoins@daniel_jacobsondjacobson@netflix.comhttp://www.linkedin.com/in/danieljacobsonhttp://www.slideshare.net/danieljacobson Image courtesy of SakeThrajan

×