SlideShare uma empresa Scribd logo
1 de 40
Next Generation APIs
Powering Web, Mobile, TV
Manny Pelarinos

Sr. Director of Distribution Platforms
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
espn-api
Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
2
1. Back Story
2. Next Gen API Platform
3. Real time consumer messaging…
at extreme scale
4. Q&A
QCON 2016
Agenda
3
• Manny Pelarinos - Sr Director of Distribution
Platforms
• Second time at QCon
• 9 year career with ESPN
• We’re hiring! - jobs.espncareers.com
About me
Backstory
5
Headline:
• Bullet 1
• Bullet 2
• Bullet 3
How
• Personalization
• Globalization
• Product-first design
6
ESPN Facts and Figures
• > 400 Million API calls per day
• Peaks of over 20K RPS
• 1 Million WS Updates to Fans in
< 100MS
7
Product Galore So Many Screens
8
• Network latency and multiple requests are
bad
• Data plan restrictions and bandwidth
and Mobile
The Good, The Bad
9
v2v1v0
Focus on
Partners
Custom Feeds
REST
API Reuse
Product Agnostic
BIG APIs
Focus on
Partners
Best of both
worlds
API Evolution
10
Next Generation API
Platform
12
Say Hello to Binder
Core APIs Product APIs
13
Baseball Football … Sports CMS Audio/Video Fan Pref.
Core APIs
Business logic
Service tier
Lightweight
Data
References
Product APIs
Composition
Trimming
Custom DSL
Efficient
Baseball
Core APIs
…Sports
Core APIs
CMS Core
APIs
Audio/
Video
Fan Core
APIs
Caching and Routing
Football
Core APIs
Caching and Routing
ESPN.com
Product APIs
App Product
APIs
TV Product
APIs
Partner
Product APIs
Products &
Screens
Architecture
14
15
16
17
18
• Actual Fan preference data is small - IDs
• Content is big - News, Scores, Etc.
• Solution - Product API that conflates Fan
Preferences with sports data
Personalization
19
ESPN Now
• Many disparate sources of
content - CMS, Blogs,
Twitter, Facebook, etc.
• Search API alone doesn’t
get you all the details
• Solution - Product API that
conflates search and all
our various content APIs
20
• Caching
• Asynchronous
• DSL + Groovy
• Tools & Dashboards
Key Components
21
Caching
Local Core API Cache
(Countdown TTL)
Product APIs
Core
APIs
Database
Distributed
Cache
22
• Make requests in parallel –
Product API should only be
as slow as its slowest core
API call
• But, mixing synchronous
programming with
asynchronous is hard
• Enforce asynchronous all
the time but needed
convenience and rails
• Ported JS Promises to
Java (With RxJava)
Promises
23
Groovy
• Powerful Dynamic
Language
• Java++
• Performance issues
mitigated by caching
24
Tools and Dashboards - Trace
25
HAR (HTTP Archive)
26
Grafana and OpenTSDB
27
Technology
RxJav
Real Time Messaging
29
Massive Scale
• How do we enable real time data with REST
APIs?
• How can we scale to millions of concurrently
connected Fans?
Real-Time Data at Sports Scale
30
• FastCast is a real-time high-scale multicast
publishing platform that uses web sockets
as its underlying technology, allowing it to
work in both web and mobile spaces
• Client sets up a “Topic” via Admin Service
• Client publishes to Topic via Admin Service
• Fans subscribe to Topic via FastCast Core
• Fans receive messages as they are
published
Say Hello to FastCast
31
The Details
• Reliable core node replication handled thru Redis
• Built-in checkpoint/snapshot feature
• Uses generic JsonDiff/Patch + payload compression
• Client/server healthCheck + Better analytics captures
• AutoScaling in AWS with multi-region latency based routing
32
FastCast Architecture
API Delta
Capture
FastCast
Admin
TopicsLog
Replication
Traffic
Manager
Product APIs
Summary
34
What Did We Learn?
• One size does NOT fit all - Need
to separate Core from Product
• Caching is Key
• Operational Tools are awesome
• REST APIs + WebSockets =
COOL
35
• Error handling is complicated…
• What to do when circuit breaker
trips and nothing is in cache
• 50x vs. NULL
Playbook for Errors
36
• Binder as an in-memory application side
‘join engine’
• On going discussion around pre-expanding
more
NoSQL = Joins
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
espn-api

Mais conteúdo relacionado

Destaque

Codigo de comunicacion Tarea 5
Codigo de comunicacion Tarea 5Codigo de comunicacion Tarea 5
Codigo de comunicacion Tarea 5Kmylitta Kmelot
 
Buenaidea service design
Buenaidea service designBuenaidea service design
Buenaidea service designTomás Garcia
 
Desarrollo humano y recreacio 2do
Desarrollo humano y recreacio 2doDesarrollo humano y recreacio 2do
Desarrollo humano y recreacio 2doCÉSAR MC
 
How I Became a Telephone Names Sourcer
How I Became a Telephone Names SourcerHow I Became a Telephone Names Sourcer
How I Became a Telephone Names SourcerTechTrak.com, Inc.
 
Zoorate - presentazione agg al 01 09 2015
Zoorate - presentazione agg al 01 09 2015Zoorate - presentazione agg al 01 09 2015
Zoorate - presentazione agg al 01 09 2015Roberto Stefanini
 
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...DevOpsDays Tel Aviv
 
Etnografia comp consumidor-2011-moda-cibertec
Etnografia comp consumidor-2011-moda-cibertecEtnografia comp consumidor-2011-moda-cibertec
Etnografia comp consumidor-2011-moda-cibertecNicolás Ortiz Esaine
 
IA 6: Patterns for Effective Interaction Design. Jenifer Tidwell
IA 6: Patterns for Effective Interaction Design. Jenifer TidwellIA 6: Patterns for Effective Interaction Design. Jenifer Tidwell
IA 6: Patterns for Effective Interaction Design. Jenifer TidwellHarald Felgner, PhD
 
BLACK FUSION PLAN DE COMPENSACION
BLACK FUSION PLAN DE COMPENSACIONBLACK FUSION PLAN DE COMPENSACION
BLACK FUSION PLAN DE COMPENSACIONheber meza
 
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965+ Aloisio Magalhães
 
Nightingale bls guias 2015
Nightingale bls guias 2015Nightingale bls guias 2015
Nightingale bls guias 2015German Ruiz
 
CEB 2013 - Français - lire-écrire 1
CEB 2013 - Français - lire-écrire 1CEB 2013 - Français - lire-écrire 1
CEB 2013 - Français - lire-écrire 1LeSoir.be
 

Destaque (18)

Codigo de comunicacion Tarea 5
Codigo de comunicacion Tarea 5Codigo de comunicacion Tarea 5
Codigo de comunicacion Tarea 5
 
Revista cancer ovario
Revista cancer ovarioRevista cancer ovario
Revista cancer ovario
 
Trcw n 6_12.korolev.pdf
Trcw n 6_12.korolev.pdfTrcw n 6_12.korolev.pdf
Trcw n 6_12.korolev.pdf
 
Buenaidea service design
Buenaidea service designBuenaidea service design
Buenaidea service design
 
Iluminación Lámparas Vintage Retro EGLO 2016
Iluminación Lámparas Vintage Retro EGLO 2016Iluminación Lámparas Vintage Retro EGLO 2016
Iluminación Lámparas Vintage Retro EGLO 2016
 
Desarrollo humano y recreacio 2do
Desarrollo humano y recreacio 2doDesarrollo humano y recreacio 2do
Desarrollo humano y recreacio 2do
 
Comenzar
ComenzarComenzar
Comenzar
 
Anestesia
AnestesiaAnestesia
Anestesia
 
How I Became a Telephone Names Sourcer
How I Became a Telephone Names SourcerHow I Became a Telephone Names Sourcer
How I Became a Telephone Names Sourcer
 
Zoorate - presentazione agg al 01 09 2015
Zoorate - presentazione agg al 01 09 2015Zoorate - presentazione agg al 01 09 2015
Zoorate - presentazione agg al 01 09 2015
 
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
Containing Chaos with Kubernetes - Terrence Ryan, Google - DevOpsDays Tel Avi...
 
Etnografia comp consumidor-2011-moda-cibertec
Etnografia comp consumidor-2011-moda-cibertecEtnografia comp consumidor-2011-moda-cibertec
Etnografia comp consumidor-2011-moda-cibertec
 
IA 6: Patterns for Effective Interaction Design. Jenifer Tidwell
IA 6: Patterns for Effective Interaction Design. Jenifer TidwellIA 6: Patterns for Effective Interaction Design. Jenifer Tidwell
IA 6: Patterns for Effective Interaction Design. Jenifer Tidwell
 
BLACK FUSION PLAN DE COMPENSACION
BLACK FUSION PLAN DE COMPENSACIONBLACK FUSION PLAN DE COMPENSACION
BLACK FUSION PLAN DE COMPENSACION
 
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965
Viii%20 bienal%20de%20s%c3%a3o%20paulo%20%20 %20parte%201%201965
 
Nightingale bls guias 2015
Nightingale bls guias 2015Nightingale bls guias 2015
Nightingale bls guias 2015
 
Los plasticos
Los plasticosLos plasticos
Los plasticos
 
CEB 2013 - Français - lire-écrire 1
CEB 2013 - Français - lire-écrire 1CEB 2013 - Français - lire-écrire 1
CEB 2013 - Français - lire-écrire 1
 

Mais de C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 

Mais de C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Último

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
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
 

Último (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
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
 

ESPN Next Generation APIs Powering Web, Mobile, TV

  • 1. Next Generation APIs Powering Web, Mobile, TV Manny Pelarinos
 Sr. Director of Distribution Platforms
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ espn-api
  • 3. Presented at QCon New York www.qconnewyork.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4. 2 1. Back Story 2. Next Gen API Platform 3. Real time consumer messaging… at extreme scale 4. Q&A QCON 2016 Agenda
  • 5. 3 • Manny Pelarinos - Sr Director of Distribution Platforms • Second time at QCon • 9 year career with ESPN • We’re hiring! - jobs.espncareers.com About me
  • 7. 5 Headline: • Bullet 1 • Bullet 2 • Bullet 3 How • Personalization • Globalization • Product-first design
  • 8. 6 ESPN Facts and Figures • > 400 Million API calls per day • Peaks of over 20K RPS • 1 Million WS Updates to Fans in < 100MS
  • 9. 7 Product Galore So Many Screens
  • 10. 8 • Network latency and multiple requests are bad • Data plan restrictions and bandwidth and Mobile The Good, The Bad
  • 11. 9 v2v1v0 Focus on Partners Custom Feeds REST API Reuse Product Agnostic BIG APIs Focus on Partners Best of both worlds API Evolution
  • 12. 10
  • 14. 12 Say Hello to Binder Core APIs Product APIs
  • 15. 13 Baseball Football … Sports CMS Audio/Video Fan Pref. Core APIs Business logic Service tier Lightweight Data References Product APIs Composition Trimming Custom DSL Efficient Baseball Core APIs …Sports Core APIs CMS Core APIs Audio/ Video Fan Core APIs Caching and Routing Football Core APIs Caching and Routing ESPN.com Product APIs App Product APIs TV Product APIs Partner Product APIs Products & Screens Architecture
  • 16. 14
  • 17. 15
  • 18. 16
  • 19. 17
  • 20. 18 • Actual Fan preference data is small - IDs • Content is big - News, Scores, Etc. • Solution - Product API that conflates Fan Preferences with sports data Personalization
  • 21. 19 ESPN Now • Many disparate sources of content - CMS, Blogs, Twitter, Facebook, etc. • Search API alone doesn’t get you all the details • Solution - Product API that conflates search and all our various content APIs
  • 22. 20 • Caching • Asynchronous • DSL + Groovy • Tools & Dashboards Key Components
  • 23. 21 Caching Local Core API Cache (Countdown TTL) Product APIs Core APIs Database Distributed Cache
  • 24. 22 • Make requests in parallel – Product API should only be as slow as its slowest core API call • But, mixing synchronous programming with asynchronous is hard • Enforce asynchronous all the time but needed convenience and rails • Ported JS Promises to Java (With RxJava) Promises
  • 25. 23 Groovy • Powerful Dynamic Language • Java++ • Performance issues mitigated by caching
  • 31. 29 Massive Scale • How do we enable real time data with REST APIs? • How can we scale to millions of concurrently connected Fans? Real-Time Data at Sports Scale
  • 32. 30 • FastCast is a real-time high-scale multicast publishing platform that uses web sockets as its underlying technology, allowing it to work in both web and mobile spaces • Client sets up a “Topic” via Admin Service • Client publishes to Topic via Admin Service • Fans subscribe to Topic via FastCast Core • Fans receive messages as they are published Say Hello to FastCast
  • 33. 31 The Details • Reliable core node replication handled thru Redis • Built-in checkpoint/snapshot feature • Uses generic JsonDiff/Patch + payload compression • Client/server healthCheck + Better analytics captures • AutoScaling in AWS with multi-region latency based routing
  • 36. 34 What Did We Learn? • One size does NOT fit all - Need to separate Core from Product • Caching is Key • Operational Tools are awesome • REST APIs + WebSockets = COOL
  • 37. 35 • Error handling is complicated… • What to do when circuit breaker trips and nothing is in cache • 50x vs. NULL Playbook for Errors
  • 38. 36 • Binder as an in-memory application side ‘join engine’ • On going discussion around pre-expanding more NoSQL = Joins
  • 39.
  • 40. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ espn-api