SlideShare a Scribd company logo
Copyright © 2017 iflix. All rights reserved.1
In global scale
GRAPHQL API DISTRIBUTION
Copyright © 2017 iflix. All rights reserved.2
JAKUB RIEDL
Software Engineer @iflix
lead of GraphQL project
Copyright © 2017 iflix. All rights reserved.3
● Redefine television for 1 billion people
● Global video-on-demand platform for emerging markets
● Hollywood, Bollywood, Nollywood, Korean, local content and much more
● Different technical challenges than in 1st world countries
● Partners with TELCO to supply service in mobile data package
IFLIX
Copyright © 2017 iflix. All rights reserved.4
IFLIX REGIONS
Copyright © 2017 iflix. All rights reserved.5
WHERE IS THE CATCH?
Copyright © 2017 iflix. All rights reserved.6
IFLIX REGIONS
Copyright © 2017 iflix. All rights reserved.7
AWS DATA CENTERS
Copyright © 2017 iflix. All rights reserved.8
CLIENT APPLICATIONS
● Web
● Android (Mobile)
● iOS
● Android TV & STBs
● 2x Samsung TV
● 2x LG TV
● Roku
● Alibaba TV
● …
Copyright © 2017 iflix. All rights reserved.9
● 20+ engineering teams working on new features
● In 4 different timezones
● New features every day
● Ongoing refactoring
● Lot of shortcuts in early stage we need to deal with
RAPIDLY CHANGING BUSINESS
Copyright © 2017 iflix. All rights reserved.10
LOAD
130k
4+m
Asia’s fastest growing Internet TV service
NOW
?
1b
VISION
USERS
REQ / MIN
Copyright © 2017 iflix. All rights reserved.11
● Video data are easy(-ish) with CDN
● Catalogue is quite static and for all users
● Personalized collections are per group of users but still quite static
● Watch history is dynamic and strictly private
● DRM works with one time key which cannot be cached
STRUCTURE OF DATA
Copyright © 2017 iflix. All rights reserved.12
LET’S DO IT!
Copyright © 2017 iflix. All rights reserved.13
NAIVE APPROACH
MICROSERVICE - A
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
Copyright © 2017 iflix. All rights reserved.14
NAIVE APPROACH
MICROSERVICE - A
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
Copyright © 2017 iflix. All rights reserved.15
STATIC CONTENT
CDN
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
STATIC DATA GENERATOR
Copyright © 2017 iflix. All rights reserved.16
STATIC CONTENT
CDN
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
STATIC DATA GENERATOR
distance from user
Copyright © 2017 iflix. All rights reserved.17
LAST MILE
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.18
LAST MILE GOOD
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.19
LAST MILE GOOD
SCALABILITY EXCELLENT
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.20
LAST MILE GOOD
SCALABILITY EXCELLENT
FLEXIBILITY BAD
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.21
LAST MILE GOOD
SCALABILITY EXCELLENT
FLEXIBILITY BAD
MAINTAINABILITY BAD
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
Integration Layer
Authentication
Evolving Schema
22
WELCOME GRAPHQL!
STATIC DATA
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
Integration Layer
Authentication
Evolving Schema
23
SCHEMA EVOLUTION
STATIC DATA
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D
MICROSERVICE - D
v1
v2
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
Integration Layer
Authentication
Evolving Schema
24
SCHEMA EVOLUTION
STATIC DATA
MICROSERVICE - B
MICROSERVICE - C
MICROSERVICE - D v2
Copyright © 2017 iflix. All rights reserved.25
LAST MILE
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.26
LAST MILE BAD
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.27
LAST MILE BAD
SCALABILITY NOT GOOD
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.28
LAST MILE BAD
SCALABILITY NOT GOOD
FLEXIBILITY EXCELLENT
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.29
LAST MILE BAD
SCALABILITY NOT GOOD
FLEXIBILITY EXCELLENT
MAINTAINABILITY EXCELLENT
Copyright © 2017 iflix. All rights reserved.30
● Bring data as close to user as possible
● Caching
● Infrastructure independent
● Docker + Kubernetes
● TELCO partners
LAST MILE
GRAPHQL
GATEWAY
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
31
CACHING
DATACENTER
1x 10x
Up to 400ms on every request
Copyright © 2017 iflix. All rights reserved.
PUBLIC @CDN
GRAPHQL
GATEWAY
32
CACHING
DATACENTER
1x 3x
7x
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
33
CACHING
DATACENTER
1x 2x
PUBLIC @CDN
7x
PERSONALIZED @CDN
1x
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
34
CACHING
DATACENTER
1x 1x
PUBLIC @CDN
7x
PERSONALIZED @CDN
1x
1x Private
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
35
CACHING
DATACENTER
1x 1x
PUBLIC @CDN
7x
PERSONALIZED @CDN
1x
1x Private
Copyright © 2017 iflix. All rights reserved.36
LAST MILE
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.37
LAST MILE EXCELLENT
SCALABILITY
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.38
LAST MILE EXCELLENT
SCALABILITY GOOD
FLEXIBILITY
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.39
LAST MILE EXCELLENT
SCALABILITY GOOD
FLEXIBILITY EXCELLENT
MAINTAINABILITY
Copyright © 2017 iflix. All rights reserved.40
LAST MILE EXCELLENT
SCALABILITY GOOD
FLEXIBILITY EXCELLENT
MAINTAINABILITY EXCELLENT
Copyright © 2017 iflix. All rights reserved.
GRAPHQL
GATEWAY
41
CACHING
1x
PUBLIC @CDN
7x
PERSONALIZED @CDN
1x
1x Private
CACHING CDN
Copyright © 2017 iflix. All rights reserved.42
LAST MILE EXCELLENT
SCALABILITY EXCELLENT
FLEXIBILITY EXCELLENT
MAINTAINABILITY EXCELLENT
Copyright © 2017 iflix. All rights reserved.43
● Integration layer using GraphQL gateway
● Continuously evolving schema
● Static everything what is possible
● Caching within gateway
● Controlled using HTTP headers
● Gateway in region = data as close to user as possible
SUMMARY
Copyright © 2017 iflix. All rights reserved.
● jakubriedl.com
● @jakubriedl
● jakubriedl
● jakubriedl
● @jakubriedl
44
GET IN TOUCH

More Related Content

What's hot

Mobile World Congress 2017 - Ericsson & Red Hat partnership
Mobile World Congress 2017 - Ericsson & Red Hat partnershipMobile World Congress 2017 - Ericsson & Red Hat partnership
Mobile World Congress 2017 - Ericsson & Red Hat partnership
Ericsson
 
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
InfluxData
 
2016 Cloud Insights
2016 Cloud Insights2016 Cloud Insights
2016 Cloud Insights
Madan Ganesh Velayudham
 
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Vietnam Open Infrastructure User Group
 
Intro to Forecasting with TensorFlow and Prophet
Intro to Forecasting with TensorFlow and ProphetIntro to Forecasting with TensorFlow and Prophet
Intro to Forecasting with TensorFlow and Prophet
Anais Jackie Dotis
 
SmartCity IoT on Kubernetes and OpenStack
SmartCity IoT on Kubernetes and OpenStackSmartCity IoT on Kubernetes and OpenStack
SmartCity IoT on Kubernetes and OpenStack
Jakub Pavlik
 
Meeting the Needs of the Global Community
Meeting the Needs of the Global CommunityMeeting the Needs of the Global Community
Meeting the Needs of the Global Community
Ericsson
 

What's hot (7)

Mobile World Congress 2017 - Ericsson & Red Hat partnership
Mobile World Congress 2017 - Ericsson & Red Hat partnershipMobile World Congress 2017 - Ericsson & Red Hat partnership
Mobile World Congress 2017 - Ericsson & Red Hat partnership
 
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
Giacomo Tirabassi [InfluxData] | Istio at InfluxData | InfluxDays Virtual Exp...
 
2016 Cloud Insights
2016 Cloud Insights2016 Cloud Insights
2016 Cloud Insights
 
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
Bare Metal Cluster with Kubernetes, Istio and Metallb | Nguyen Phuong An, Ngu...
 
Intro to Forecasting with TensorFlow and Prophet
Intro to Forecasting with TensorFlow and ProphetIntro to Forecasting with TensorFlow and Prophet
Intro to Forecasting with TensorFlow and Prophet
 
SmartCity IoT on Kubernetes and OpenStack
SmartCity IoT on Kubernetes and OpenStackSmartCity IoT on Kubernetes and OpenStack
SmartCity IoT on Kubernetes and OpenStack
 
Meeting the Needs of the Global Community
Meeting the Needs of the Global CommunityMeeting the Needs of the Global Community
Meeting the Needs of the Global Community
 

Similar to GraphQL distribution

IoT Architectural Overview - 3 use case studies from InfluxData
IoT Architectural Overview - 3 use case studies from InfluxData IoT Architectural Overview - 3 use case studies from InfluxData
IoT Architectural Overview - 3 use case studies from InfluxData
InfluxData
 
End User Computing with NetApp
End User Computing with NetAppEnd User Computing with NetApp
End User Computing with NetApp
NetApp
 
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
Nicolas Brousse
 
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
Puppet
 
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Amazon Web Services
 
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering BetterHow to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
Deborah Schalm
 
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering BetterHow to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
DevOps.com
 
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Sanjeev Rampal
 
Monitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxDataMonitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxData
InfluxData
 
Cisco Live: Containers on Enterprise Compute and Networks
Cisco Live: Containers on Enterprise Compute  and NetworksCisco Live: Containers on Enterprise Compute  and Networks
Cisco Live: Containers on Enterprise Compute and Networks
Michael Duarte
 
Platform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
Platform for Cloud Migration — Accelerating and De-Risking your Cloud JourneyPlatform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
Platform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
Delphix
 
Cisco connect winnipeg 2018 we make it simple
Cisco connect winnipeg 2018   we make it simpleCisco connect winnipeg 2018   we make it simple
Cisco connect winnipeg 2018 we make it simple
Cisco Canada
 
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
Mark Church
 
CompTIA Top 10 Emerging Technologies of 2018
CompTIA Top 10 Emerging Technologies of 2018CompTIA Top 10 Emerging Technologies of 2018
CompTIA Top 10 Emerging Technologies of 2018
Stephanie Ragsdale
 
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
NVIDIA Taiwan
 
Webinar: Multi-Cloud Monitoring
Webinar: Multi-Cloud MonitoringWebinar: Multi-Cloud Monitoring
Webinar: Multi-Cloud Monitoring
InfluxData
 
ThinManager® Delivering and Managing The Connected Enterprise: Introduction
ThinManager® Delivering and Managing The Connected Enterprise: IntroductionThinManager® Delivering and Managing The Connected Enterprise: Introduction
ThinManager® Delivering and Managing The Connected Enterprise: Introduction
Rockwell Automation
 
How far is too far? The Hybrid Cloud Distance Factor
How far is too far? The Hybrid Cloud Distance FactorHow far is too far? The Hybrid Cloud Distance Factor
How far is too far? The Hybrid Cloud Distance Factor
OVH US
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiences
Denis Wilson Souza Rosa
 
Cisco Connect Toronto 2017 - Cisco meraki let simple work for you
Cisco Connect Toronto 2017 - Cisco meraki   let simple work for youCisco Connect Toronto 2017 - Cisco meraki   let simple work for you
Cisco Connect Toronto 2017 - Cisco meraki let simple work for you
Cisco Canada
 

Similar to GraphQL distribution (20)

IoT Architectural Overview - 3 use case studies from InfluxData
IoT Architectural Overview - 3 use case studies from InfluxData IoT Architectural Overview - 3 use case studies from InfluxData
IoT Architectural Overview - 3 use case studies from InfluxData
 
End User Computing with NetApp
End User Computing with NetAppEnd User Computing with NetApp
End User Computing with NetApp
 
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
 
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
PuppetConf 2017: Adobe Advertising Cloud: Lean Puppet Workflow to Support Mul...
 
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
Recipe for Success: The Right Ingredients for Enterprise-Class Cloud Data Man...
 
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering BetterHow to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
 
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering BetterHow to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
How to Use the TICK Stack, CoreOS, & Docker to Make Your SaaS Offering Better
 
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
Cisco Live 2017: Container networking deep dive with Docker Enterprise Editio...
 
Monitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxDataMonitor Kubernetes in Rancher using InfluxData
Monitor Kubernetes in Rancher using InfluxData
 
Cisco Live: Containers on Enterprise Compute and Networks
Cisco Live: Containers on Enterprise Compute  and NetworksCisco Live: Containers on Enterprise Compute  and Networks
Cisco Live: Containers on Enterprise Compute and Networks
 
Platform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
Platform for Cloud Migration — Accelerating and De-Risking your Cloud JourneyPlatform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
Platform for Cloud Migration — Accelerating and De-Risking your Cloud Journey
 
Cisco connect winnipeg 2018 we make it simple
Cisco connect winnipeg 2018   we make it simpleCisco connect winnipeg 2018   we make it simple
Cisco connect winnipeg 2018 we make it simple
 
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
Docker Enterprise Networking and Cisco Contiv - Cisco Live 2017 BRKSDN-2256
 
CompTIA Top 10 Emerging Technologies of 2018
CompTIA Top 10 Emerging Technologies of 2018CompTIA Top 10 Emerging Technologies of 2018
CompTIA Top 10 Emerging Technologies of 2018
 
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
 
Webinar: Multi-Cloud Monitoring
Webinar: Multi-Cloud MonitoringWebinar: Multi-Cloud Monitoring
Webinar: Multi-Cloud Monitoring
 
ThinManager® Delivering and Managing The Connected Enterprise: Introduction
ThinManager® Delivering and Managing The Connected Enterprise: IntroductionThinManager® Delivering and Managing The Connected Enterprise: Introduction
ThinManager® Delivering and Managing The Connected Enterprise: Introduction
 
How far is too far? The Hybrid Cloud Distance Factor
How far is too far? The Hybrid Cloud Distance FactorHow far is too far? The Hybrid Cloud Distance Factor
How far is too far? The Hybrid Cloud Distance Factor
 
Why microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiencesWhy microservices architectures drive exceptional customer experiences
Why microservices architectures drive exceptional customer experiences
 
Cisco Connect Toronto 2017 - Cisco meraki let simple work for you
Cisco Connect Toronto 2017 - Cisco meraki   let simple work for youCisco Connect Toronto 2017 - Cisco meraki   let simple work for you
Cisco Connect Toronto 2017 - Cisco meraki let simple work for you
 

Recently uploaded

Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 

Recently uploaded (20)

Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 

GraphQL distribution

  • 1. Copyright © 2017 iflix. All rights reserved.1 In global scale GRAPHQL API DISTRIBUTION
  • 2. Copyright © 2017 iflix. All rights reserved.2 JAKUB RIEDL Software Engineer @iflix lead of GraphQL project
  • 3. Copyright © 2017 iflix. All rights reserved.3 ● Redefine television for 1 billion people ● Global video-on-demand platform for emerging markets ● Hollywood, Bollywood, Nollywood, Korean, local content and much more ● Different technical challenges than in 1st world countries ● Partners with TELCO to supply service in mobile data package IFLIX
  • 4. Copyright © 2017 iflix. All rights reserved.4 IFLIX REGIONS
  • 5. Copyright © 2017 iflix. All rights reserved.5 WHERE IS THE CATCH?
  • 6. Copyright © 2017 iflix. All rights reserved.6 IFLIX REGIONS
  • 7. Copyright © 2017 iflix. All rights reserved.7 AWS DATA CENTERS
  • 8. Copyright © 2017 iflix. All rights reserved.8 CLIENT APPLICATIONS ● Web ● Android (Mobile) ● iOS ● Android TV & STBs ● 2x Samsung TV ● 2x LG TV ● Roku ● Alibaba TV ● …
  • 9. Copyright © 2017 iflix. All rights reserved.9 ● 20+ engineering teams working on new features ● In 4 different timezones ● New features every day ● Ongoing refactoring ● Lot of shortcuts in early stage we need to deal with RAPIDLY CHANGING BUSINESS
  • 10. Copyright © 2017 iflix. All rights reserved.10 LOAD 130k 4+m Asia’s fastest growing Internet TV service NOW ? 1b VISION USERS REQ / MIN
  • 11. Copyright © 2017 iflix. All rights reserved.11 ● Video data are easy(-ish) with CDN ● Catalogue is quite static and for all users ● Personalized collections are per group of users but still quite static ● Watch history is dynamic and strictly private ● DRM works with one time key which cannot be cached STRUCTURE OF DATA
  • 12. Copyright © 2017 iflix. All rights reserved.12 LET’S DO IT!
  • 13. Copyright © 2017 iflix. All rights reserved.13 NAIVE APPROACH MICROSERVICE - A MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D
  • 14. Copyright © 2017 iflix. All rights reserved.14 NAIVE APPROACH MICROSERVICE - A MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D
  • 15. Copyright © 2017 iflix. All rights reserved.15 STATIC CONTENT CDN MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D STATIC DATA GENERATOR
  • 16. Copyright © 2017 iflix. All rights reserved.16 STATIC CONTENT CDN MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D STATIC DATA GENERATOR distance from user
  • 17. Copyright © 2017 iflix. All rights reserved.17 LAST MILE SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 18. Copyright © 2017 iflix. All rights reserved.18 LAST MILE GOOD SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 19. Copyright © 2017 iflix. All rights reserved.19 LAST MILE GOOD SCALABILITY EXCELLENT FLEXIBILITY MAINTAINABILITY
  • 20. Copyright © 2017 iflix. All rights reserved.20 LAST MILE GOOD SCALABILITY EXCELLENT FLEXIBILITY BAD MAINTAINABILITY
  • 21. Copyright © 2017 iflix. All rights reserved.21 LAST MILE GOOD SCALABILITY EXCELLENT FLEXIBILITY BAD MAINTAINABILITY BAD
  • 22. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY Integration Layer Authentication Evolving Schema 22 WELCOME GRAPHQL! STATIC DATA MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D
  • 23. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY Integration Layer Authentication Evolving Schema 23 SCHEMA EVOLUTION STATIC DATA MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D MICROSERVICE - D v1 v2
  • 24. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY Integration Layer Authentication Evolving Schema 24 SCHEMA EVOLUTION STATIC DATA MICROSERVICE - B MICROSERVICE - C MICROSERVICE - D v2
  • 25. Copyright © 2017 iflix. All rights reserved.25 LAST MILE SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 26. Copyright © 2017 iflix. All rights reserved.26 LAST MILE BAD SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 27. Copyright © 2017 iflix. All rights reserved.27 LAST MILE BAD SCALABILITY NOT GOOD FLEXIBILITY MAINTAINABILITY
  • 28. Copyright © 2017 iflix. All rights reserved.28 LAST MILE BAD SCALABILITY NOT GOOD FLEXIBILITY EXCELLENT MAINTAINABILITY
  • 29. Copyright © 2017 iflix. All rights reserved.29 LAST MILE BAD SCALABILITY NOT GOOD FLEXIBILITY EXCELLENT MAINTAINABILITY EXCELLENT
  • 30. Copyright © 2017 iflix. All rights reserved.30 ● Bring data as close to user as possible ● Caching ● Infrastructure independent ● Docker + Kubernetes ● TELCO partners LAST MILE GRAPHQL GATEWAY
  • 31. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY 31 CACHING DATACENTER 1x 10x Up to 400ms on every request
  • 32. Copyright © 2017 iflix. All rights reserved. PUBLIC @CDN GRAPHQL GATEWAY 32 CACHING DATACENTER 1x 3x 7x
  • 33. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY 33 CACHING DATACENTER 1x 2x PUBLIC @CDN 7x PERSONALIZED @CDN 1x
  • 34. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY 34 CACHING DATACENTER 1x 1x PUBLIC @CDN 7x PERSONALIZED @CDN 1x 1x Private
  • 35. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY 35 CACHING DATACENTER 1x 1x PUBLIC @CDN 7x PERSONALIZED @CDN 1x 1x Private
  • 36. Copyright © 2017 iflix. All rights reserved.36 LAST MILE SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 37. Copyright © 2017 iflix. All rights reserved.37 LAST MILE EXCELLENT SCALABILITY FLEXIBILITY MAINTAINABILITY
  • 38. Copyright © 2017 iflix. All rights reserved.38 LAST MILE EXCELLENT SCALABILITY GOOD FLEXIBILITY MAINTAINABILITY
  • 39. Copyright © 2017 iflix. All rights reserved.39 LAST MILE EXCELLENT SCALABILITY GOOD FLEXIBILITY EXCELLENT MAINTAINABILITY
  • 40. Copyright © 2017 iflix. All rights reserved.40 LAST MILE EXCELLENT SCALABILITY GOOD FLEXIBILITY EXCELLENT MAINTAINABILITY EXCELLENT
  • 41. Copyright © 2017 iflix. All rights reserved. GRAPHQL GATEWAY 41 CACHING 1x PUBLIC @CDN 7x PERSONALIZED @CDN 1x 1x Private CACHING CDN
  • 42. Copyright © 2017 iflix. All rights reserved.42 LAST MILE EXCELLENT SCALABILITY EXCELLENT FLEXIBILITY EXCELLENT MAINTAINABILITY EXCELLENT
  • 43. Copyright © 2017 iflix. All rights reserved.43 ● Integration layer using GraphQL gateway ● Continuously evolving schema ● Static everything what is possible ● Caching within gateway ● Controlled using HTTP headers ● Gateway in region = data as close to user as possible SUMMARY
  • 44. Copyright © 2017 iflix. All rights reserved. ● jakubriedl.com ● @jakubriedl ● jakubriedl ● jakubriedl ● @jakubriedl 44 GET IN TOUCH