SlideShare a Scribd company logo
1 of 50
Download to read offline
Stefano Sandrini
Sr EMEA Specialist SA, AWS Mobile
@electricste
API Modernization with GraphQL
Advanced use cases
Prerequisites
GraphQL Fundamentals
AWS Fundamentals & AppSync fundamentals
API Concepts Fundamentals
Agenda
Modernization
Modernization with GraphQL & AWS AppSync
Use cases
Customizations
Operating at scale
Agenda. Use Cases, Customizations, Operation
Complex business logic VS Complex resolvers
Authorization
Offline and Caching
Conflict resolution, delta sync, API Cache vs Resolver Cache
Plug in any data source… for offline and real-time !
Multiple auth method, users vs systems, auth for real-time use cases
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
https://commons.wikimedia.org/wiki/File:Blue_Origins_New_Glenn_Launch_(29350547990).png
Why modernization?
Build
efficient APIs
Build
reusable and
scalable APIs
Engage
with customers
Deliver the
right data at the
right time
Develop
applications faster
Today, customers are building:
Universal APIs
Enterprise data
Apps connect to many
data sources
Real-time apps
Chat functionality
Fan engagement
Location-aware notifications
Mobile-first apps
Consumer
IoT/connected
Field service
Offline support
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc.
AWS AppSync
Conflict detection and
resolution in
the cloud
GraphQL facade for any
AWS service
Enterprise security features:
IAM, Amazon Cognito, OIDC,
API keys
Managed serverless
GraphQL service
Add data sync, real-time, and
offline capabilities for any
data source or API
Connect to data sources
in
your account
AWS AppSync
Amazon DynamoDB
Amazon Aurora
Amazon Elasticsearch
Service (Amazon ES)
AWS Lambda
HTTP
query sync {
syncPosts {
items {
id
}
}
}
Query language
for APIs
Runtime for fulfilling
those queries
GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc.
Local
(publish/subscribe)
Your
existing data
AWS AppSync
Amazon DynamoDB
Amazon Aurora
Amazon Elasticsearch
Service (Amazon ES)
AWS Lambda
HTTP
query sync {
syncPosts {
items {
id
}
}
}
Query language
for APIs
Runtime for fulfilling
those queries
GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc.
Local
(publish/subscribe)
Your
existing data
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Sometimes…
Sometimes…
!?!??!!?!?!?!!
Direct Lambda resolver
AWS AppSync
AWS Lambda
Direct Lambda resolver
AWS AppSync
AWS Lambda
Optional
Direct Lambda resolver
AWS AppSync
AWS Lambda
Optional
Info Object
Direct Lambda resolver
AWS AppSync
AWS Lambda
Optional
Info Object
Direct Lambda resolver
AWS AppSync
AWS Lambda
Optional
Info Object
Direct Lambda resolver
AWS AppSync
AWS Lambda
Optional
Info Object
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Multi-auth
• Authorization on
• Type
• Operation
• Field
• Default auth mode
• Additional providers AWS AppSync
AWS Cloud
Data sources
Security
Identity and
Access Management
Multi-auth
type Flight
@aws_api_key
@aws_cognito_user_pools (cognito_groups: [”FrequentFlyers"])
@aws_iam
{
id: ID! @aws_api_key @aws_iam
departureDate: String!
departureAirportCode: String! @aws_api_key
departureAirportName: String! @aws_api_key
departureCity: String!
departureLocale: String!
arrivalDate: String!
arrivalAirportCode: String! @aws_iam
arrivalAirportName: String! @aws_iam
arrivalCity: String! @aws_iam
arrivalLocale: String! @aws_iam
ticketPrice: Int!
ticketCurrency: String!
flightNumber: Int!
seatAllocation: Int
seatCapacity: Int!
}
AWS AppSync – authorization modes
Sign in with OIDC idP
Use JSON web tokens (JWTs)
When to use
Existing user directory
Authenticating users in app
Not interacting with other
AWS services
OpenID Connect
Granular access control based on claims
#set( $userGroups =
ctx.identity.claims.get("oidc:groups”))
#set( $allowedGroups = ["Bloggers", "Readers"] )
#foreach( $userGroup in $userGroups )
#if( $allowedGroups.contains($userGroup) )
#set( $isStaticGroupAuthorized = true )
#break
#end
#end
#if( !($isStaticGroupAuthorized == true ) )
$util.unauthorized()
#end
AppSync – authorization modes
Backend systems
AWS credentials
IoT systems
When to use
Amazon EC2 instances
AWS Lambda functions
AWS Identity and Access Management (IAM)
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["appsync:GraphQL"],
"Resource": [
"arn:*:apis/GraphQLApiId/types/Query/fields/<field>",
"arn:*:apis/GraphQLApiId/types/Mutation/fields/<field>",
"arn:*:apis/GraphQLApiId/types/Post/fields/<field>"
]
}]
}
Multi-auth
type Mutation {
createFlight(input: CreateFlightInput!, condition:
ModelFlightConditionInput): Flight @aws_iam
}
type Subscription {
onCreateFlight: Flight @aws_subscribe(mutations:
["createFlight"]) @aws_iam
}
Multi-auth for real-time: Chat application
Get signature for signed URL
based on identity
getSignedPolicy Secrets Manager
Conversations
User conversations
Messages DynamoDBB
Stream
readCountUpdater
uploadHandler
putObject event
Update message with
attachment/thumbnail
Update user conversation’s
read count
Media Bucket
Distribution
Download Upload
chatAPI
postConfirmTrigger
UserPool
Users
Multi-auth for real-time
Subscription
Resolver
Amazon
DynamoDB
Real-time GraphQL subscriptions
AWS
AppSync
AppSync data sources
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Amazon
DynamoDB
Real-time GraphQL subscriptions
AWS
AppSync
AppSync data sources
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Secure WebSocket channel
Real-time GraphQL subscriptions
AWS
AppSync
AppSync data sources
Amazon
DynamoDB
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon DynamoDB
(User Profiles)
Amazon API Gateway
(Order Service)
AWS Lambda
(Inventory Service)
API Consumers
(Front-end Clients or
other Backend Services)
Amazon Aurora
(Pricing)
Cache
Full API Caching
Per Resolver Caching
Encryption
AppSync Cache
• Managed server-side caching
• Full API Caching
• Per Resolver Caching
• Encryption
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amplify DataStore: developer experience
Model app data
and relationships
(locally or in admin UI)
Set up
authentication and
authorization
Work with app data using an “offline-first” programming
model—receive updates to shared data in real-time
Closer look at the DataStore API
?
Define: DataStore-compliant API
Supports a Sync operation for
all models
Supports a subscription operation
for all models
May Support create/update/delete
operations for some models
Selection sets specify mandatory
fields for each model
id
_lastChangedAt
_version
_deleted
When it exists, selection sets specify
mandatory fields of a parent model
Id
_deleted (as a minimum)
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Private subnet
Plug in any data source with AWS Lambda
AWS Lambda Service VPC VPC
AWS Cloud
Security group
Thank you!
© 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Stefano Sandrini
Sr EMEA Specialist SA, AWS Mobile
@electricste

More Related Content

What's hot

Event-driven (serverless) Applications
Event-driven (serverless) ApplicationsEvent-driven (serverless) Applications
Event-driven (serverless) ApplicationsDanilo Poccia
 
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016 Webi...
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016  Webi...Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016  Webi...
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016 Webi...Amazon Web Services
 
Amazon AI: soluzioni di intelligenza artificiale pronte per l'uso
Amazon AI: soluzioni di intelligenza artificiale pronte per l'usoAmazon AI: soluzioni di intelligenza artificiale pronte per l'uso
Amazon AI: soluzioni di intelligenza artificiale pronte per l'usoAmazon Web Services
 
Cloud-powered Mobile Apps
Cloud-powered Mobile AppsCloud-powered Mobile Apps
Cloud-powered Mobile AppsDanilo Poccia
 
Big Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSBig Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSAmazon Web Services
 
使用 Amazon Lex 在應用程式中建立對話式機器人
使用 Amazon Lex 在應用程式中建立對話式機器人 使用 Amazon Lex 在應用程式中建立對話式機器人
使用 Amazon Lex 在應用程式中建立對話式機器人 Amazon Web Services
 
Accelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAccelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAmazon 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
 
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...Amazon Web Services
 
The Cloud as a Platform
The Cloud as a PlatformThe Cloud as a Platform
The Cloud as a Platformjineshvaria
 
Get Value From Your Data
Get Value From Your DataGet Value From Your Data
Get Value From Your DataDanilo Poccia
 
AWS Summit 2011: AWS 101 Overview
AWS Summit 2011: AWS 101 OverviewAWS Summit 2011: AWS 101 Overview
AWS Summit 2011: AWS 101 OverviewAmazon Web Services
 
AWSome Day Bangkok Opening Keynote
AWSome Day Bangkok Opening KeynoteAWSome Day Bangkok Opening Keynote
AWSome Day Bangkok Opening KeynoteAmazon Web Services
 
Building Event-driven Serverless Apps
Building Event-driven Serverless AppsBuilding Event-driven Serverless Apps
Building Event-driven Serverless AppsDanilo Poccia
 
AWS Keynote 1 - AWS Enterprise Summit - Hong Kong
AWS Keynote 1 - AWS Enterprise Summit - Hong KongAWS Keynote 1 - AWS Enterprise Summit - Hong Kong
AWS Keynote 1 - AWS Enterprise Summit - Hong KongAmazon Web Services
 
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用Amazon Web Services
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayDanilo Poccia
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub OverviewDanilo Poccia
 
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)Amazon Web Services Korea
 

What's hot (20)

Event-driven (serverless) Applications
Event-driven (serverless) ApplicationsEvent-driven (serverless) Applications
Event-driven (serverless) Applications
 
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016 Webi...
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016  Webi...Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016  Webi...
Evolving Your Big Data Use Cases from Batch to Real-Time - AWS May 2016 Webi...
 
Deep Dive: Amazon Lex
Deep Dive: Amazon LexDeep Dive: Amazon Lex
Deep Dive: Amazon Lex
 
Amazon AI: soluzioni di intelligenza artificiale pronte per l'uso
Amazon AI: soluzioni di intelligenza artificiale pronte per l'usoAmazon AI: soluzioni di intelligenza artificiale pronte per l'uso
Amazon AI: soluzioni di intelligenza artificiale pronte per l'uso
 
Cloud-powered Mobile Apps
Cloud-powered Mobile AppsCloud-powered Mobile Apps
Cloud-powered Mobile Apps
 
Big Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWSBig Data Architectural Patterns and Best Practices on AWS
Big Data Architectural Patterns and Best Practices on AWS
 
使用 Amazon Lex 在應用程式中建立對話式機器人
使用 Amazon Lex 在應用程式中建立對話式機器人 使用 Amazon Lex 在應用程式中建立對話式機器人
使用 Amazon Lex 在應用程式中建立對話式機器人
 
Accelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAccelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWS
 
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
 
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...
Industry 4.0: come i servizi IoT e Big Data di AWS rendono Smart il Manufactu...
 
The Cloud as a Platform
The Cloud as a PlatformThe Cloud as a Platform
The Cloud as a Platform
 
Get Value From Your Data
Get Value From Your DataGet Value From Your Data
Get Value From Your Data
 
AWS Summit 2011: AWS 101 Overview
AWS Summit 2011: AWS 101 OverviewAWS Summit 2011: AWS 101 Overview
AWS Summit 2011: AWS 101 Overview
 
AWSome Day Bangkok Opening Keynote
AWSome Day Bangkok Opening KeynoteAWSome Day Bangkok Opening Keynote
AWSome Day Bangkok Opening Keynote
 
Building Event-driven Serverless Apps
Building Event-driven Serverless AppsBuilding Event-driven Serverless Apps
Building Event-driven Serverless Apps
 
AWS Keynote 1 - AWS Enterprise Summit - Hong Kong
AWS Keynote 1 - AWS Enterprise Summit - Hong KongAWS Keynote 1 - AWS Enterprise Summit - Hong Kong
AWS Keynote 1 - AWS Enterprise Summit - Hong Kong
 
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用
Track 4 Session 1_MAD01 如何活用事件驅動架構快速擴展應用
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
 
AWS Mobile Hub Overview
AWS Mobile Hub OverviewAWS Mobile Hub Overview
AWS Mobile Hub Overview
 
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
AWS Media Day-AWS Media Service를 활용한 새로운 AWS 미디어 워크플로우(Aslam Khader 최고 제품 책임자)
 

Similar to API moderne e real-time per applicazioni innovative

Serverless Developer Experience I AWS Dev Day 2018
Serverless Developer Experience I AWS Dev Day 2018Serverless Developer Experience I AWS Dev Day 2018
Serverless Developer Experience I AWS Dev Day 2018AWS Germany
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep DiveAmazon Web Services
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayDanilo Poccia
 
Build and run applications without thinking about servers
Build and run applications without thinking about serversBuild and run applications without thinking about servers
Build and run applications without thinking about serversAmazon Web Services
 
Introduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSIntroduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSAmazon Web Services
 
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion DubaiBuilding event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion DubaiCodemotion Dubai
 
How to build and deploy serverless apps - AWS Summit Cape Town 2018
How to build and deploy serverless apps - AWS Summit Cape Town 2018How to build and deploy serverless apps - AWS Summit Cape Town 2018
How to build and deploy serverless apps - AWS Summit Cape Town 2018Amazon Web Services
 
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...Amazon Web Services
 
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...Amazon Web Services
 
20200513 Getting started with AWS Amplify
20200513   Getting started with AWS Amplify20200513   Getting started with AWS Amplify
20200513 Getting started with AWS AmplifyMarcia Villalba
 
Scaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexusScaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexusTara Walker
 
re:Invent ARC307 - Serverless architectural patterns and best practices.pdf
re:Invent ARC307 - Serverless architectural patterns and best practices.pdfre:Invent ARC307 - Serverless architectural patterns and best practices.pdf
re:Invent ARC307 - Serverless architectural patterns and best practices.pdfHeitor Lessa
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless Marcia Villalba
 
善用 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
 
Reply Labcamp Rome - AWS Zombie - Serverless and Microservices
Reply Labcamp Rome - AWS Zombie - Serverless and MicroservicesReply Labcamp Rome - AWS Zombie - Serverless and Microservices
Reply Labcamp Rome - AWS Zombie - Serverless and MicroservicesAndrea Mercanti
 
App modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent CloudApp modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent CloudKai Wähner
 
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
 

Similar to API moderne e real-time per applicazioni innovative (20)

Introduzione a GraphQL
Introduzione a GraphQLIntroduzione a GraphQL
Introduzione a GraphQL
 
Serverless Developer Experience I AWS Dev Day 2018
Serverless Developer Experience I AWS Dev Day 2018Serverless Developer Experience I AWS Dev Day 2018
Serverless Developer Experience I AWS Dev Day 2018
 
Serverless Development Deep Dive
Serverless Development Deep DiveServerless Development Deep Dive
Serverless Development Deep Dive
 
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API GatewayBuild a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
Build a Server-less Event-driven Backend with AWS Lambda and Amazon API Gateway
 
Build and run applications without thinking about servers
Build and run applications without thinking about serversBuild and run applications without thinking about servers
Build and run applications without thinking about servers
 
Deep Dive: AWS Lambda
Deep Dive: AWS LambdaDeep Dive: AWS Lambda
Deep Dive: AWS Lambda
 
Introduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOSIntroduction to GraphQL and AWS Appsync on AWS - iOS
Introduction to GraphQL and AWS Appsync on AWS - iOS
 
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion DubaiBuilding event driven serverless apps by Danilo Poccia at Codemotion Dubai
Building event driven serverless apps by Danilo Poccia at Codemotion Dubai
 
How to build and deploy serverless apps - AWS Summit Cape Town 2018
How to build and deploy serverless apps - AWS Summit Cape Town 2018How to build and deploy serverless apps - AWS Summit Cape Town 2018
How to build and deploy serverless apps - AWS Summit Cape Town 2018
 
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
 
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
NEW LAUNCH! Realtime and Offline application development using GraphQL with A...
 
20200513 Getting started with AWS Amplify
20200513   Getting started with AWS Amplify20200513   Getting started with AWS Amplify
20200513 Getting started with AWS Amplify
 
Scaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexusScaling your Mobile App Development in the Cloud - DevNexus
Scaling your Mobile App Development in the Cloud - DevNexus
 
re:Invent ARC307 - Serverless architectural patterns and best practices.pdf
re:Invent ARC307 - Serverless architectural patterns and best practices.pdfre:Invent ARC307 - Serverless architectural patterns and best practices.pdf
re:Invent ARC307 - Serverless architectural patterns and best practices.pdf
 
20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless 20200520 - Como empezar a desarrollar aplicaciones serverless
20200520 - Como empezar a desarrollar aplicaciones serverless
 
Serverless Developer Experience
Serverless Developer ExperienceServerless Developer Experience
Serverless Developer Experience
 
善用 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)
 
Reply Labcamp Rome - AWS Zombie - Serverless and Microservices
Reply Labcamp Rome - AWS Zombie - Serverless and MicroservicesReply Labcamp Rome - AWS Zombie - Serverless and Microservices
Reply Labcamp Rome - AWS Zombie - Serverless and Microservices
 
App modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent CloudApp modernization on AWS with Apache Kafka and Confluent Cloud
App modernization on AWS with Apache Kafka and Confluent Cloud
 
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
 

More from Commit University

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfCommit University
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit University
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PACommit University
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting forCommit University
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityCommit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfCommit University
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Commit University
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsCommit University
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneCommit University
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcCommit University
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeCommit University
 

More from Commit University (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfBreaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdfAccelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
 
Slide-10years.pdf
Slide-10years.pdfSlide-10years.pdf
Slide-10years.pdf
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
 
Vue.js slots.pdf
Vue.js slots.pdfVue.js slots.pdf
Vue.js slots.pdf
 
Commit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptxCommit - Qwik il framework che ti stupirà.pptx
Commit - Qwik il framework che ti stupirà.pptx
 
Sviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PASviluppare da zero una Angular Web App per la PA
Sviluppare da zero una Angular Web App per la PA
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 
Prisma the ORM that node was waiting for
Prisma the ORM that node was waiting forPrisma the ORM that node was waiting for
Prisma the ORM that node was waiting for
 
Decision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit UniversityDecision-making for Software Development Teams - Commit University
Decision-making for Software Development Teams - Commit University
 
Component Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdfComponent Design Pattern nei Game Engine.pdf
Component Design Pattern nei Game Engine.pdf
 
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
Un viaggio alla scoperta dei Language Models e dell’intelligenza artificiale ...
 
Prototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step FunctionsPrototipazione Low-Code con AWS Step Functions
Prototipazione Low-Code con AWS Step Functions
 
KMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and SwiftKMM survival guide: how to tackle struggles between Kotlin and Swift
KMM survival guide: how to tackle struggles between Kotlin and Swift
 
Da Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazioneDa Vuex a Pinia: come fare la migrazione
Da Vuex a Pinia: come fare la migrazione
 
Orchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lcOrchestrare Micro-frontend con micro-lc
Orchestrare Micro-frontend con micro-lc
 
Fastify has defeated Lagacy-Code
Fastify has defeated Lagacy-CodeFastify has defeated Lagacy-Code
Fastify has defeated Lagacy-Code
 
SwiftUI vs UIKit
SwiftUI vs UIKitSwiftUI vs UIKit
SwiftUI vs UIKit
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 

API moderne e real-time per applicazioni innovative

  • 1. Stefano Sandrini Sr EMEA Specialist SA, AWS Mobile @electricste API Modernization with GraphQL Advanced use cases
  • 2. Prerequisites GraphQL Fundamentals AWS Fundamentals & AppSync fundamentals API Concepts Fundamentals
  • 3. Agenda Modernization Modernization with GraphQL & AWS AppSync Use cases Customizations Operating at scale
  • 4. Agenda. Use Cases, Customizations, Operation Complex business logic VS Complex resolvers Authorization Offline and Caching Conflict resolution, delta sync, API Cache vs Resolver Cache Plug in any data source… for offline and real-time ! Multiple auth method, users vs systems, auth for real-time use cases
  • 5. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. https://commons.wikimedia.org/wiki/File:Blue_Origins_New_Glenn_Launch_(29350547990).png
  • 6. Why modernization? Build efficient APIs Build reusable and scalable APIs Engage with customers Deliver the right data at the right time Develop applications faster
  • 7. Today, customers are building: Universal APIs Enterprise data Apps connect to many data sources Real-time apps Chat functionality Fan engagement Location-aware notifications Mobile-first apps Consumer IoT/connected Field service Offline support
  • 8. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 9. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc.
  • 10. AWS AppSync Conflict detection and resolution in the cloud GraphQL facade for any AWS service Enterprise security features: IAM, Amazon Cognito, OIDC, API keys Managed serverless GraphQL service Add data sync, real-time, and offline capabilities for any data source or API Connect to data sources in your account
  • 11. AWS AppSync Amazon DynamoDB Amazon Aurora Amazon Elasticsearch Service (Amazon ES) AWS Lambda HTTP query sync { syncPosts { items { id } } } Query language for APIs Runtime for fulfilling those queries GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc. Local (publish/subscribe) Your existing data
  • 12. AWS AppSync Amazon DynamoDB Amazon Aurora Amazon Elasticsearch Service (Amazon ES) AWS Lambda HTTP query sync { syncPosts { items { id } } } Query language for APIs Runtime for fulfilling those queries GraphQL, the GraphQL logo and any related marks are trademarks of Facebook, Inc. Local (publish/subscribe) Your existing data
  • 13. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 22. Direct Lambda resolver AWS AppSync AWS Lambda
  • 23. Direct Lambda resolver AWS AppSync AWS Lambda Optional
  • 24. Direct Lambda resolver AWS AppSync AWS Lambda Optional Info Object
  • 25. Direct Lambda resolver AWS AppSync AWS Lambda Optional Info Object
  • 26. Direct Lambda resolver AWS AppSync AWS Lambda Optional Info Object
  • 27. Direct Lambda resolver AWS AppSync AWS Lambda Optional Info Object
  • 28. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 29. Multi-auth • Authorization on • Type • Operation • Field • Default auth mode • Additional providers AWS AppSync AWS Cloud Data sources
  • 31. Multi-auth type Flight @aws_api_key @aws_cognito_user_pools (cognito_groups: [”FrequentFlyers"]) @aws_iam { id: ID! @aws_api_key @aws_iam departureDate: String! departureAirportCode: String! @aws_api_key departureAirportName: String! @aws_api_key departureCity: String! departureLocale: String! arrivalDate: String! arrivalAirportCode: String! @aws_iam arrivalAirportName: String! @aws_iam arrivalCity: String! @aws_iam arrivalLocale: String! @aws_iam ticketPrice: Int! ticketCurrency: String! flightNumber: Int! seatAllocation: Int seatCapacity: Int! }
  • 32. AWS AppSync – authorization modes Sign in with OIDC idP Use JSON web tokens (JWTs) When to use Existing user directory Authenticating users in app Not interacting with other AWS services OpenID Connect Granular access control based on claims #set( $userGroups = ctx.identity.claims.get("oidc:groups”)) #set( $allowedGroups = ["Bloggers", "Readers"] ) #foreach( $userGroup in $userGroups ) #if( $allowedGroups.contains($userGroup) ) #set( $isStaticGroupAuthorized = true ) #break #end #end #if( !($isStaticGroupAuthorized == true ) ) $util.unauthorized() #end
  • 33. AppSync – authorization modes Backend systems AWS credentials IoT systems When to use Amazon EC2 instances AWS Lambda functions AWS Identity and Access Management (IAM) { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["appsync:GraphQL"], "Resource": [ "arn:*:apis/GraphQLApiId/types/Query/fields/<field>", "arn:*:apis/GraphQLApiId/types/Mutation/fields/<field>", "arn:*:apis/GraphQLApiId/types/Post/fields/<field>" ] }] }
  • 34. Multi-auth type Mutation { createFlight(input: CreateFlightInput!, condition: ModelFlightConditionInput): Flight @aws_iam } type Subscription { onCreateFlight: Flight @aws_subscribe(mutations: ["createFlight"]) @aws_iam }
  • 35. Multi-auth for real-time: Chat application Get signature for signed URL based on identity getSignedPolicy Secrets Manager Conversations User conversations Messages DynamoDBB Stream readCountUpdater uploadHandler putObject event Update message with attachment/thumbnail Update user conversation’s read count Media Bucket Distribution Download Upload chatAPI postConfirmTrigger UserPool Users
  • 37. Amazon DynamoDB Real-time GraphQL subscriptions AWS AppSync AppSync data sources Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel
  • 38. Amazon DynamoDB Real-time GraphQL subscriptions AWS AppSync AppSync data sources Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel Secure WebSocket channel
  • 40. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 41. Amazon DynamoDB (User Profiles) Amazon API Gateway (Order Service) AWS Lambda (Inventory Service) API Consumers (Front-end Clients or other Backend Services) Amazon Aurora (Pricing)
  • 42. Cache Full API Caching Per Resolver Caching Encryption
  • 43. AppSync Cache • Managed server-side caching • Full API Caching • Per Resolver Caching • Encryption
  • 44. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 45. Amplify DataStore: developer experience Model app data and relationships (locally or in admin UI) Set up authentication and authorization Work with app data using an “offline-first” programming model—receive updates to shared data in real-time
  • 46. Closer look at the DataStore API ?
  • 47. Define: DataStore-compliant API Supports a Sync operation for all models Supports a subscription operation for all models May Support create/update/delete operations for some models Selection sets specify mandatory fields for each model id _lastChangedAt _version _deleted When it exists, selection sets specify mandatory fields of a parent model Id _deleted (as a minimum)
  • 48. © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 49. Private subnet Plug in any data source with AWS Lambda AWS Lambda Service VPC VPC AWS Cloud Security group
  • 50. Thank you! © 2021, Amazon Web Services, Inc. or its affiliates. All rights reserved. Stefano Sandrini Sr EMEA Specialist SA, AWS Mobile @electricste