SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Accelerating Mobile App Data Synchronization and Real-Time Data
Development with GraphQL
John Burry, Specialist Solutions Architect
AWS
Tom Bray, Chief Architect
Ticketmaster
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
The State of Mobile
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Mobile Use
Continues to Grow
91% 61%
US Adult Population
Owns a mobile phone
Of these were
Smartphone users
2.32
Billion
Smartphone usage will surpass
2.5 billion in 2018
Source: Statista
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
App Downloads
JULY 2013 JUNE 2014 2017
50
BILLION
75
BILLION
197
BILLION
Google’s Android market
passed 50 billion app
downloads and featured
over 1 million available
apps.
Apple iTunes reached 75
billion app downloads and
featured 1.2 million
available apps.
In 2017, over 197 billion
apps had been
downloaded, resulting in
$77 billion in revenue.
Source: Statista
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
0
10
20
30
40
50
60
2016-012016-022016-032016-042016-052016-062016-072016-082016-092016-102016-112016-122017-012017-022017-032017-042017-052017-062017-072017-082017-092017-102017-112017-122018-012018-02
How People Access The Web
Desktop Mobile Tablet
Source: Statcounter
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Web and Mobile are converging
• Support from platform
• Feature support first
• Delivery via App Store
• Native Performance
• Vendor lock-in
• No shared code
• Support from community
• Features come later
• Delivery via App Store
• Native Performance
• Common Business Logic
• ~ 80% common code
• Support from community
• Common Web Features
• Delivery via Web
• Browser Performance
• Single Codebase
• 100% common code
Native Apps Cross Platform Apps Progressive Web Apps
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
What are developers using?
39%
18%
12%
31%
%age of Mobile Developers (primary platform)
Native (iOS & Android)
Cross-Platform (Xamarin, React Native)
Hybrid (Ionic, Phonegap, Cordova)
Mobile Web (PWA)
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Mobile & Web App
Development with AWS
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
AWS: The Right Platform for Mobile Developers
App Backend Tools
The features you need Build > Test > Deploy
App Frontend
Develop and integrate
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
AWS AppSync
Real-time & offline data using GraphQL
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
Building a mobile app
• Authenticate & authorize users
• Manage network usage efficiently
• Synchronize data
• Multiple devices & platforms
• Run business logic
• Conflict detection & resolution
• Offline data access
• Multiple data sources
• Shared data
• Real time data streaming
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
App Data Challenges
Data requirements
vary across devices
and become harder
when multiple
users share data
Users want instant
access to data
Building scalable
data-driven apps
without learning
distributed systems
concepts is hard
Users want to
continue using
their apps even
with low or no
connectivity
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
AWS AppSync
Managed Serverless
GraphQL service
Connect to data
sources in your account
Add data sync, real-time and
offline capabilities for any data
source or API
GraphQL façade
(queries, mutations, subscriptions)
for any AWS service
Conflict detection and
resolution in the cloud
Enterprise security features
(IAM, Cognito, API keys)
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
GraphQL
GraphQL is a query language for APIs and a runtime
for fulfilling those queries with your existing data.
GraphQL provides a complete and understandable description
of the data in your API, gives clients the power to ask for
exactly what they need and nothing more, makes it easier to
evolve APIs over time, and enables powerful developer tools
graphql.org/learn
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
GraphQL is a query language for APIs…
• Resources defined by a GraphQL Schema
• Client sends query, server orchestrates data
• Mutiple transports (HTTP, MQTT, WebSockets)
• Efficient (Network Bandwidth, Dev Time)
• Self Documenting (Introspection w/ Tooling)
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
GraphQL is a query language for APIs…
Queries read data
Mutations write data
Subscriptions are pushed data in real-time
© 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved
GraphQL: Query Basics
There are 3 operation types:
• Query
• Mutation
• Subscription
Variables are optional. When using
variables, clients send a “variables” object
containing the values alongside the
query.
Adopting GraphQL
Change is Hard. Lessons Learned Implementing GraphQL at Ticketmaster
Tom Bray
Chief Architect
Our GraphQL Journey
● Where do we want to go?
● Where did we start?
● What has the journey been like so far?
● What challenges remain?
Where do we want to go?
Name: Sara Connor
Occupation: Rockstar React
Developer
Hobbies: Avid musical
theater fan
Objectives: Buy Aladdin tickets
Get a great job
using Next.js &
GraphQL
100,000
Live events per year
1,000,000,000
Fans
What if we could efficiently
deliver all the data this
experience needs in a single
request?
500,000,000
Tickets per year
What if we could push
availability updates in real-
time?
Live event data, at your fingertips
Continuously Improving User Experience and Developer Experience
DX
UX
Reducing complexity results in more time to focus on creating delightful UX
Improving DX results in better UX and a tighter feedback loop
The Opportunity Cost of Complexity
Every minute a developer spends wrestling with complexity is a minute she
could have spent creating something awesome.
A single API powering the entire fan experience
Find Events Shop for Seats Purchase Transfer/Sell Attend
Where did we start?
Discovery API
developer.ticketmaster.com
Get Event Details
Method: GET
Description: Get details for a specific
event using the unique identifier for
the event.
/discovery/v2/events/{id}
Backends for Frontends: Transformation
BFF REST API
{
}
{
Backends for Frontends: Aggregation
BFF
REST API
REST API
Different BFFs for different front ends??
REST API
REST APIBFF
BFF
GraphQL is the only BFF we need
Getting the Hype Cycle started!
Getting the Hype Cycle started!
Expectations
Time
Innovation Trigger
Peak of Inflated Expectations
Trough of Disillusionment
Plateau of Productivity
Slope of Enlightenment
Hype Cycle
We are here
Expectations
Time
Innovation Trigger
Peak of Inflated Expectations
Trough of Disillusionment
Plateau of Productivity
Slope of Enlightenment
Beware the API Sprawl!
APISprawl
We are here
Innovators Early Adopters Early Majority Late Majority Laggards
Technology Adoption Curve
Marketing disruptive technologies to internal customers
Innovators Early Adopters Early Majority Late Majority Laggards
Crossing the Chasm(s)
Small
Chasm
Big
Chasm
What does it take to get GraphQL across these chasms?
How do we
get here?
Innovators Early Adopters Early Majority Late Majority Laggards
Innovators
The innovators see the value of GraphQL immediately and will be off to the races
API Sprawl
begins here
Innovators Early Adopters Early Majority Late Majority Laggards
Early Adopters
The early adopters are looking for a strategic leap forward...
Innovators Early Adopters Early Majority Late Majority Laggards
Early Adopters
Small
Chasm
To cross the first chasm, the Early Adopters need answers:
● How do we solve the N+1 problem?
● What about caching?
● How do we terminate websockets at scale?
● etc.
Innovators Early Adopters Early Majority Late Majority Laggards
Early Majority
The early majority are pragmatists looking for an increase in productivity.
What are
we asking
the Early
Majority to
do?
Big
Chasm
Team
A
Team
B
Team
C
Collaboration Models
How will teams collaborate to deliver the comprehensive schema?
Collaboration Models
Which approach is most conducive to contributions from a large number of teams?
(x)
(x)
(x)
Monolithic API AppSync + Lambda
(x)
(x)
(x)
Team
A
Team
B
Team
C
Team
A
Team
B
Team
C
Questions?
@tombray

Más contenido relacionado

La actualidad más candente

[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018
[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018
[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018Amazon Web Services
 
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wilde
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wildeapidays LIVE Paris - The State of SaaS Integration by Gertjan De Wilde
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wildeapidays
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorApigee | Google Cloud
 
Sviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLSviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLAmazon Web Services
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Kai Wähner
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorApigee | Google Cloud
 
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...apidays
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019Bill Doerrfeld
 
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee CEO Keynote I Love APIs 2015: Chet Kapoor Apigee
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee Apigee | Google Cloud
 
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018Amazon Web Services
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Apigee | Google Cloud
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldApigee | Google Cloud
 
Deep-Dive: API Analytics and Business KPIs - Measure what matters
Deep-Dive: API Analytics and Business KPIs - Measure what mattersDeep-Dive: API Analytics and Business KPIs - Measure what matters
Deep-Dive: API Analytics and Business KPIs - Measure what mattersApigee | Google Cloud
 
Deep-Dive: Predicting Customer Behavior with Apigee Insights
Deep-Dive: Predicting Customer Behavior with Apigee InsightsDeep-Dive: Predicting Customer Behavior with Apigee Insights
Deep-Dive: Predicting Customer Behavior with Apigee InsightsApigee | Google Cloud
 
API Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then DiscoverabilityAPI Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then DiscoverabilityBill Doerrfeld
 
APIs for your Business + Stages of the API Lifecycle
APIs for your Business + Stages of the API LifecycleAPIs for your Business + Stages of the API Lifecycle
APIs for your Business + Stages of the API Lifecycle3scale
 
I Love APIs Europe 2015: Technical Sessions
I Love APIs Europe 2015: Technical SessionsI Love APIs Europe 2015: Technical Sessions
I Love APIs Europe 2015: Technical SessionsApigee | Google Cloud
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Apigee | Google Cloud
 
How Apigee Api Management Platform Helps with Digital Excellence
How Apigee Api Management Platform Helps with Digital ExcellenceHow Apigee Api Management Platform Helps with Digital Excellence
How Apigee Api Management Platform Helps with Digital ExcellenceRam Kumar
 

La actualidad más candente (20)

[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018
[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018
[NEW LAUNCH!] Introducing AWS IoT Things Graph (IOT366) - AWS re:Invent 2018
 
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wilde
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wildeapidays LIVE Paris - The State of SaaS Integration by Gertjan De Wilde
apidays LIVE Paris - The State of SaaS Integration by Gertjan De Wilde
 
London adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoorLondon adapt or-die opening keynote chet kapoor
London adapt or-die opening keynote chet kapoor
 
Sviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQLSviluppare un backend serverless in real time attraverso GraphQL
Sviluppare un backend serverless in real time attraverso GraphQL
 
Definitive Guide to API Management
Definitive Guide to API ManagementDefinitive Guide to API Management
Definitive Guide to API Management
 
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
 
London Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet KapoorLondon Adapt or Die: Opening Keynote with Chet Kapoor
London Adapt or Die: Opening Keynote with Chet Kapoor
 
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...
apidays LIVE Paris - Bringing Cloud Native to a world of SaaS by Robert Wunde...
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
 
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee CEO Keynote I Love APIs 2015: Chet Kapoor Apigee
CEO Keynote I Love APIs 2015: Chet Kapoor Apigee
 
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018
How to Quickly Get Insights from IoT Data on AWS (ANT337-S) - AWS re:Invent 2018
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
AccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First WorldAccuWeather: Recasting API Experiences in a Developer-First World
AccuWeather: Recasting API Experiences in a Developer-First World
 
Deep-Dive: API Analytics and Business KPIs - Measure what matters
Deep-Dive: API Analytics and Business KPIs - Measure what mattersDeep-Dive: API Analytics and Business KPIs - Measure what matters
Deep-Dive: API Analytics and Business KPIs - Measure what matters
 
Deep-Dive: Predicting Customer Behavior with Apigee Insights
Deep-Dive: Predicting Customer Behavior with Apigee InsightsDeep-Dive: Predicting Customer Behavior with Apigee Insights
Deep-Dive: Predicting Customer Behavior with Apigee Insights
 
API Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then DiscoverabilityAPI Marketing: First Comes Usability, Then Discoverability
API Marketing: First Comes Usability, Then Discoverability
 
APIs for your Business + Stages of the API Lifecycle
APIs for your Business + Stages of the API LifecycleAPIs for your Business + Stages of the API Lifecycle
APIs for your Business + Stages of the API Lifecycle
 
I Love APIs Europe 2015: Technical Sessions
I Love APIs Europe 2015: Technical SessionsI Love APIs Europe 2015: Technical Sessions
I Love APIs Europe 2015: Technical Sessions
 
Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs Monetization: Unlock More Value from Your APIs
Monetization: Unlock More Value from Your APIs
 
How Apigee Api Management Platform Helps with Digital Excellence
How Apigee Api Management Platform Helps with Digital ExcellenceHow Apigee Api Management Platform Helps with Digital Excellence
How Apigee Api Management Platform Helps with Digital Excellence
 

Similar a Accelerating Mobile App Data Synchronization and Real-Time Data Development with GraphQL

Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Amazon Web Services
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncAmazon Web Services
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)Amazon Web Services
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Amazon Web Services
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Amazon Web Services
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyAmazon Web Services
 
AWS Webinar Series - Build web-based and native mobile applications on AWS
AWS Webinar Series - Build web-based and native mobile applications on AWS AWS Webinar Series - Build web-based and native mobile applications on AWS
AWS Webinar Series - Build web-based and native mobile applications on AWS Amazon Web Services
 
2016-Mar-03 Leppitsch in Auckland meetup
2016-Mar-03 Leppitsch in Auckland meetup2016-Mar-03 Leppitsch in Auckland meetup
2016-Mar-03 Leppitsch in Auckland meetupMichael Leppitsch
 
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Boaz Ziniman
 
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Amazon Web Services
 
Starting your Cloud Journey - AWSomeDay Israel
Starting your Cloud Journey - AWSomeDay IsraelStarting your Cloud Journey - AWSomeDay Israel
Starting your Cloud Journey - AWSomeDay IsraelAmazon Web Services
 
Starting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelStarting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelBoaz Ziniman
 
Building your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncBuilding your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncAmazon Web Services
 
Building your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncBuilding your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncAmazon Web Services
 
Nader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfNader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfAmazon Web Services
 
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...Amazon Web Services
 
Rapid mobile development using GraphQL and AWS AppSync
Rapid mobile development using GraphQL and AWS AppSyncRapid mobile development using GraphQL and AWS AppSync
Rapid mobile development using GraphQL and AWS AppSyncGabe Hollombe
 
Creating Datadipity
Creating DatadipityCreating Datadipity
Creating DatadipityClickslide
 
Building Real-Time Serverless Backends with GraphQL
Building Real-Time Serverless Backends with GraphQLBuilding Real-Time Serverless Backends with GraphQL
Building Real-Time Serverless Backends with GraphQLAmazon Web Services
 
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019AWS Summits
 

Similar a Accelerating Mobile App Data Synchronization and Real-Time Data Development with GraphQL (20)

Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
Leadership Session: Developing Mobile & Web Apps on AWS (MOB202-L) - AWS re:I...
 
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSyncTaking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
Taking your Progressive Web App to the Next Level with GraphQL and AWS AppSync
 
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)善用  GraphQL 與 AWS AppSync 讓您的  Progressive Web App (PWA) 加速進化 (Level 200)
善用 GraphQL 與 AWS AppSync 讓您的 Progressive Web App (PWA) 加速進化 (Level 200)
 
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
Taking your Progressive Web App to the Next Level - AWS Summit Sydney 2018
 
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
Bridging the Gap Between Real Time/Offline and AI/ML Capabilities in Modern S...
 
Build your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS AmplifyBuild your APPs in Lean and Agile Way using AWS Amplify
Build your APPs in Lean and Agile Way using AWS Amplify
 
AWS Webinar Series - Build web-based and native mobile applications on AWS
AWS Webinar Series - Build web-based and native mobile applications on AWS AWS Webinar Series - Build web-based and native mobile applications on AWS
AWS Webinar Series - Build web-based and native mobile applications on AWS
 
2016-Mar-03 Leppitsch in Auckland meetup
2016-Mar-03 Leppitsch in Auckland meetup2016-Mar-03 Leppitsch in Auckland meetup
2016-Mar-03 Leppitsch in Auckland meetup
 
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
 
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
Starting your Cloud Transformation Journey - Tel Aviv Summit 2018
 
Starting your Cloud Journey - AWSomeDay Israel
Starting your Cloud Journey - AWSomeDay IsraelStarting your Cloud Journey - AWSomeDay Israel
Starting your Cloud Journey - AWSomeDay Israel
 
Starting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay IsraelStarting your cloud journey - AWSomeDay Israel
Starting your cloud journey - AWSomeDay Israel
 
Building your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSyncBuilding your first GraphQL API with AWS AppSync
Building your first GraphQL API with AWS AppSync
 
Building your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSyncBuilding your First GraphQL API with AWS AppSync
Building your First GraphQL API with AWS AppSync
 
Nader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdfNader Dabit - Intro to AWS AppSync.pdf
Nader Dabit - Intro to AWS AppSync.pdf
 
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
[NEW LAUNCH!] Introducing AWS App Mesh – service mesh on AWS (CON367) - AWS r...
 
Rapid mobile development using GraphQL and AWS AppSync
Rapid mobile development using GraphQL and AWS AppSyncRapid mobile development using GraphQL and AWS AppSync
Rapid mobile development using GraphQL and AWS AppSync
 
Creating Datadipity
Creating DatadipityCreating Datadipity
Creating Datadipity
 
Building Real-Time Serverless Backends with GraphQL
Building Real-Time Serverless Backends with GraphQLBuilding Real-Time Serverless Backends with GraphQL
Building Real-Time Serverless Backends with GraphQL
 
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019
Frontend and Mobile with AWS Amplify | AWS Summit Tel Aviv 2019
 

Más de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Más de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Accelerating Mobile App Data Synchronization and Real-Time Data Development with GraphQL

  • 1. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved Accelerating Mobile App Data Synchronization and Real-Time Data Development with GraphQL John Burry, Specialist Solutions Architect AWS Tom Bray, Chief Architect Ticketmaster
  • 2. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved The State of Mobile
  • 3. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved Mobile Use Continues to Grow 91% 61% US Adult Population Owns a mobile phone Of these were Smartphone users 2.32 Billion Smartphone usage will surpass 2.5 billion in 2018 Source: Statista
  • 4. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved App Downloads JULY 2013 JUNE 2014 2017 50 BILLION 75 BILLION 197 BILLION Google’s Android market passed 50 billion app downloads and featured over 1 million available apps. Apple iTunes reached 75 billion app downloads and featured 1.2 million available apps. In 2017, over 197 billion apps had been downloaded, resulting in $77 billion in revenue. Source: Statista
  • 5. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved 0 10 20 30 40 50 60 2016-012016-022016-032016-042016-052016-062016-072016-082016-092016-102016-112016-122017-012017-022017-032017-042017-052017-062017-072017-082017-092017-102017-112017-122018-012018-02 How People Access The Web Desktop Mobile Tablet Source: Statcounter
  • 6. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved Web and Mobile are converging • Support from platform • Feature support first • Delivery via App Store • Native Performance • Vendor lock-in • No shared code • Support from community • Features come later • Delivery via App Store • Native Performance • Common Business Logic • ~ 80% common code • Support from community • Common Web Features • Delivery via Web • Browser Performance • Single Codebase • 100% common code Native Apps Cross Platform Apps Progressive Web Apps
  • 7. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved What are developers using? 39% 18% 12% 31% %age of Mobile Developers (primary platform) Native (iOS & Android) Cross-Platform (Xamarin, React Native) Hybrid (Ionic, Phonegap, Cordova) Mobile Web (PWA)
  • 8. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved Mobile & Web App Development with AWS
  • 9. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved AWS: The Right Platform for Mobile Developers App Backend Tools The features you need Build > Test > Deploy App Frontend Develop and integrate
  • 10. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved AWS AppSync Real-time & offline data using GraphQL
  • 11. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved Building a mobile app • Authenticate & authorize users • Manage network usage efficiently • Synchronize data • Multiple devices & platforms • Run business logic • Conflict detection & resolution • Offline data access • Multiple data sources • Shared data • Real time data streaming
  • 12. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved App Data Challenges Data requirements vary across devices and become harder when multiple users share data Users want instant access to data Building scalable data-driven apps without learning distributed systems concepts is hard Users want to continue using their apps even with low or no connectivity
  • 13. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved AWS AppSync Managed Serverless GraphQL service Connect to data sources in your account Add data sync, real-time and offline capabilities for any data source or API GraphQL façade (queries, mutations, subscriptions) for any AWS service Conflict detection and resolution in the cloud Enterprise security features (IAM, Cognito, API keys)
  • 14. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved GraphQL GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools graphql.org/learn
  • 15. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved GraphQL is a query language for APIs… • Resources defined by a GraphQL Schema • Client sends query, server orchestrates data • Mutiple transports (HTTP, MQTT, WebSockets) • Efficient (Network Bandwidth, Dev Time) • Self Documenting (Introspection w/ Tooling)
  • 16. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved GraphQL is a query language for APIs… Queries read data Mutations write data Subscriptions are pushed data in real-time
  • 17. © 2018, Amazon Web Services, Inc. or its Affiliates. All rights reserved GraphQL: Query Basics There are 3 operation types: • Query • Mutation • Subscription Variables are optional. When using variables, clients send a “variables” object containing the values alongside the query.
  • 18. Adopting GraphQL Change is Hard. Lessons Learned Implementing GraphQL at Ticketmaster Tom Bray Chief Architect
  • 19. Our GraphQL Journey ● Where do we want to go? ● Where did we start? ● What has the journey been like so far? ● What challenges remain?
  • 20. Where do we want to go?
  • 21. Name: Sara Connor Occupation: Rockstar React Developer Hobbies: Avid musical theater fan Objectives: Buy Aladdin tickets Get a great job using Next.js & GraphQL
  • 22. 100,000 Live events per year 1,000,000,000 Fans What if we could efficiently deliver all the data this experience needs in a single request?
  • 23. 500,000,000 Tickets per year What if we could push availability updates in real- time?
  • 24. Live event data, at your fingertips
  • 25. Continuously Improving User Experience and Developer Experience DX UX Reducing complexity results in more time to focus on creating delightful UX Improving DX results in better UX and a tighter feedback loop
  • 26. The Opportunity Cost of Complexity Every minute a developer spends wrestling with complexity is a minute she could have spent creating something awesome.
  • 27. A single API powering the entire fan experience Find Events Shop for Seats Purchase Transfer/Sell Attend
  • 28. Where did we start?
  • 29. Discovery API developer.ticketmaster.com Get Event Details Method: GET Description: Get details for a specific event using the unique identifier for the event. /discovery/v2/events/{id}
  • 30. Backends for Frontends: Transformation BFF REST API { } {
  • 31. Backends for Frontends: Aggregation BFF REST API REST API
  • 32. Different BFFs for different front ends?? REST API REST APIBFF BFF
  • 33. GraphQL is the only BFF we need
  • 34. Getting the Hype Cycle started!
  • 35. Getting the Hype Cycle started!
  • 36. Expectations Time Innovation Trigger Peak of Inflated Expectations Trough of Disillusionment Plateau of Productivity Slope of Enlightenment Hype Cycle We are here
  • 37. Expectations Time Innovation Trigger Peak of Inflated Expectations Trough of Disillusionment Plateau of Productivity Slope of Enlightenment Beware the API Sprawl! APISprawl We are here
  • 38. Innovators Early Adopters Early Majority Late Majority Laggards Technology Adoption Curve Marketing disruptive technologies to internal customers
  • 39. Innovators Early Adopters Early Majority Late Majority Laggards Crossing the Chasm(s) Small Chasm Big Chasm What does it take to get GraphQL across these chasms? How do we get here?
  • 40. Innovators Early Adopters Early Majority Late Majority Laggards Innovators The innovators see the value of GraphQL immediately and will be off to the races API Sprawl begins here
  • 41. Innovators Early Adopters Early Majority Late Majority Laggards Early Adopters The early adopters are looking for a strategic leap forward...
  • 42. Innovators Early Adopters Early Majority Late Majority Laggards Early Adopters Small Chasm To cross the first chasm, the Early Adopters need answers: ● How do we solve the N+1 problem? ● What about caching? ● How do we terminate websockets at scale? ● etc.
  • 43. Innovators Early Adopters Early Majority Late Majority Laggards Early Majority The early majority are pragmatists looking for an increase in productivity. What are we asking the Early Majority to do? Big Chasm
  • 44. Team A Team B Team C Collaboration Models How will teams collaborate to deliver the comprehensive schema?
  • 45. Collaboration Models Which approach is most conducive to contributions from a large number of teams? (x) (x) (x) Monolithic API AppSync + Lambda (x) (x) (x) Team A Team B Team C Team A Team B Team C