This presentation demonstrates the great successes of the Netflix API to date. After some introspection, however, there is an opportunity to better prepare the API for the future. This presentation also offers a few ideas on how the Netflix API architecture may change over time.
8. Some of our Key Goals Resiliency, Reliability and Stability Maximize uptime Scalability System can grow without needing frequent refactoring Simplicity Easier integration for API consumers Agility Architecture will support rapid development without compromising the core of the system
9.
10. Wii iPad App PS3 iPhone App Netflix API Apple TV Google TV TiVo Roku XBox
11. Future Architecture needs to support key audience first with a trickle down of features to the public audience Wii Roku PS3 iPhone App iPad App Google TV Netflix API Apple TV XBox TiVo
13. (Some) API Interfaces and Their Dependencies Auto-Complete Rental History Agg Lists Similars LIsts Queues SEARCH SIMILARS SYSTEM RECOMMENDATION ENGINE QUEUE RENTAL HISTORY Title Details Previews Ratings Recommendations Title States CINEMATCH CONTENT MANAGEMENT SYSTEM TITLE STATES REST Interface API Dependency
14. INTERNET REQUEST UNIFIED LIST/TITLE RESPONSE WITH PARTIAL RESPONSE BUILT IN SIMILARS LIST SEARCH LIST RENTAL HISTORY LIST TITLE LIST QUEUE LIST AUTO COMPLETE LIST ETC… TITLE INFORMATION TITLE STATE RATING RECOMMEND ATION TITLE DETAILS
15. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
16. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THESE ARE SOME OF THE DATA SOURCES THAT PROVIDE CONTENT TO THE API PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
17. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THESE ARE SOME OF THE SERVICES PROVIDED BY SOME OF THE API DEPENDENCIES THROUGH WHICH CONTENT IS MADE AVAILABLE TO THE API PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
18. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THIS IS THE LAYER WHERE THE API CAN NORMALIZE THE DATA TO PREPARE IT FOR CONSUMPTION BY API CLIENTS. IT COULD ALSO BE WHERE THE API CAN APPLY RESILIENCY MEASURES TO PROTECT AGAINST FAILURES FROM THE API DEPENDENCIES. ALTHOUGH THE DIAGRAM REPRESENTS THIS AS A DISCRETE API LAYER, IT COULD JUST AS EASILY BE A DISTRIBUTED MODEL ACROSS THE DEPENDENCIES. PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
19. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper MAKING PURE APIs WILL IMPROVE THE CONSISTENCY OF THE API CODE AND THOSE THAT CONSUME IT. THIS WOULD HELP PRODUCT MANAGERS AS WELL SINCE THE CODE FOR THEIR PRODUCTS CAN ALSO BECOME MORE UNIFORM. PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
20. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THE SHARED API INTERFACE LAYER ALLOWS THE VARIOUS CLIENTS TO MERGE RESULTS FROM THE PURE APIs AND PREPARE THEM IN WAYS THAT ARE CONDUCIVE TO THE GOALS OF THEIR APP. MEANWHILE, ANY OF THESE INTERFACES CAN BE SHARED ACROSS THE CLIENTS SINCE MANY OF THESE INTERFACES WILL BE COMMON ACROSS THE PLATFORMS. PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
21. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THE WRAPPER LAYER IS DESIGNED TO CONSUME THE PURE APIS AND/OR THE SHARED INTERFACES WHILE ALLOWING DEVICE/APP-SPECIFIC IMPLEMENTATIONS. SOME OF THESE WRAPPERS ARE THEORETICAL WHILE OTHERS MAY ACTUALLY TAKE ADVANTAGE OF THIS TIER. PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
22. iPhone Wrapper Recommend-ation Recommend-ation Service Xbox Wrapper Ratings Service SHARED API INTER-FACES LIST API Ratings Wii Wrapper THESE ARE SOME OF THE ACTUAL INTERNAL API CUSTOMERS TODAY. THIS LIST WILL GROW OVER TIME, BUT THIS ARCHITECTURE WILL SCALE ACCORDINGLY. PS3 Wrapper TITLE API Rental History Rental History Service Roku Wrapper USER API User Account iPad Wrapper Normal-ization And Resiiency AppleTV Wrapper Queue AUTH API PC / Mac Wrapper Title Catalog TiVo Wrapper Source Data Layer API Repository Layer Web Service Layer Shared Layer Wrapper Layer API Layer App Layer
23. Flexible API RequestsAs flexible as SQL SELECT person_first_name, person_last_name, dept_name FROM person, department WHERE UPPER(dept_name) LIKE ‘%Engineering%’ AND person_added_date BETWEEN ‘2002-01-01’ AND sysdate ORDER BY person_last_name ASC Manages Partial Response Determines the Selected API Restricts Output Sorts Results GOAL: API should be able to handle any request that you can do in SQL
29. Questions? API Management Engineering Manager – Web API Systems: http://bit.ly/9O3Hic API Integration Systems Analyst: http://bit.ly/hyPxCh API Engineering Senior Software Engineer/Architect – Web API Platform: http://bit.ly/e0AKw4 API Test Engineering Senior Software Engineer in Test – API: http://bit.ly/9zHPtJ Senior Software Engineer in Test – API Platform: http://bit.ly/eD3tLn Lead Software Engineer in Test – API: http://bit.ly/fqxBYC Social Engineering Social Systems – Engineer Architect: http://bit.ly/dYq6C8
Notas do Editor
Despite these major changes, the API has still been able to achieve the goals of the company to the point that it is now serving roughly ? billion requests per month.
Over the last two years, the API has seen a ton of changes. Some tactical, some fundamental.
All under great time constraints and pressure to propel the business forward.