Table of contents
1.
Introduction
2.
Features
3.
System Overview 
3.1.
Architecture
3.1.1.
GraphQL Proxy
3.1.2.
GraphQL Schema
3.1.3.
Data Source
3.1.4.
Resolvers
3.1.5.
Action
3.1.6.
Operation
3.1.7.
Related Services
3.1.8.
AWS AppSync Client
4.
Security in AWS AppSync
4.1.
Data Protection in AWS AppSync
4.2.
Compliance Validation for AWS AppSync
5.
Resolver mapping for AWS AppSync
6.
Pricing for AWS AppSync
7.
Frequently Asked Questions
7.1.
What is the difference between AppSync and amplify?
7.2.
Does AppSync use an API gateway?
7.3.
Is App sync secure?
7.4.
What is AWS AppSync used for?
7.5.
Does AppSync use an API gateway?
8.
Conclusion
Last Updated: Mar 27, 2024
Easy

AWS AppSync

Author Apoorv
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

AWS AppSync is a new service that enables developers to manage and synchronize mobile app data in real time across devices and users, but still allows the data to be accessed and altered when the mobile device is in an offline state.AWS AppSync is a fully managed solution that allows serverless GraphQL backends to be deployed in the AWS cloud. It has features that allow developers to effortlessly query numerous databases, microservices, and APIs via a single GraphQL endpoint.

Application developers can use AWS AppSync to aggregate data from numerous sources, such as Amazon DynamoDB, AWS Lambda, and HTTP APIs, using a powerful, scalable GraphQL interface.

Features

  • AWS AppSync comes with a number of capabilities that make developing GraphQL easier:
  • The AWS AppSync console allows for powerful GraphQL schema editing, including automatic GraphQL schema generation from DynamoDB.
  • Efficient data cleaning.
  • Integration with Amazon Cognito user pools for per-field fine-grained access control.

System Overview 

AWS AppSync is a managed GraphQL solution that allows developers to interface with their data. GraphQL has a number of advantages over traditional gateways, such as encouraging declarative code and working with modern technologies and frameworks like React, React Native, iOS, and Android.

Architecture

Source: Amazon AWS

GraphQL Proxy

The GraphQL engine for processing requests and translating them to logical functions for data operations or triggers are run by this component. The data resolution procedure applies a batching method to your data sources (called the Data Loader). Conflict detection and resolution mechanisms are also managed by this component.

 

GraphQL Schema

A single GraphQL schema defines each GraphQL API. The GraphQL Type system outlines a GraphQL server's capabilities and is used to determine whether a query is legitimate. The type of system of a server is referred to as its schema. Object types, scalars, input types, interfaces, enums, and unions are all part of it. It specifies the format of data that passes through your API as well as the activities that can be carried out. All data operations in GraphQL are checked against this schema because it is a strongly typed protocol.

Schema files are text files, usually named schema.graphql. You can use the CLI to build this file and send it to AWS AppSync, or you can go to the console and add the following to the Schema page:

schema {
}


We can even define a TODO type

schema {
    query: Query
}
type Query {
    getTodos: [Todo]
}

type Todo {
    id: ID!
    name: String
    description: String
    priority: Int
}


It's worth noting that the Todo object type supports scalar fields like texts and numbers. In addition to the base GraphQL scalars that you can use in a schema, AWS AppSync supports improved Scalar types. A mandatory field is one that ends with an exclamation point. A unique identification that can be String or Int is the ID scalar type. For the automatic assignment, you can control these in your resolver mapping templates.

Data Source

Data sources are AWS resources with which GraphQL APIs can communicate. Data sources supported by AWS AppSync include AWS Lambda, Amazon DynamoDB, relational databases (Amazon Aurora Serverless), Amazon OpenSearch Service, and HTTP endpoints. An AWS AppSync API can be set up to communicate with multiple data sources, allowing you to consolidate data in one place. AWS AppSync can utilize existing AWS resources from your account or create DynamoDB tables on your behalf using a schema definition.

Resolvers

GraphQL resolvers connect a data source to the fields in a type's schema. The method through which requests are fulfilled is called a resolver. Without writing any code, AWS AppSync can generate and link resolvers from a schema or create a schema and connect resolvers from an existing table.

AWS AppSync resolvers use Apache Velocity Template Language (VTL) mapping templates to translate a GraphQL expression into a format that the data source can understand. Resolver Mapping Template Programming Guide is an introductory tutorial-style programming guide for writing resolvers, and Resolver Mapping Template Context Reference contains auxiliary utilities to use during programming.

Action

AWS AppSync has only one action defined. This action sends a notification to all linked subscribers as a result of a mutation. Following a GraphQL subscription, clients become subscribers through a handshake mechanism.

Operation

The three GraphQL operations are query (read-only fetch), modification (write followed by a fetch), and subscription in AWS AppSync (long-lived requests that receive data in response to events).

Related Services

Consider using AWS Amplify if you're starting from scratch with a web or mobile app. Amplify makes use of AWS AppSync and other AWS services to assist you in creating more robust, powerful web and mobile apps with less effort.

AWS AppSync Client

GraphQL operations are defined at this location. Before sending request statements to the GraphQL proxy, the client wraps them with the necessary authorization. Mutations are produced in a write-through pattern and responses are saved in offline storage.

Security in AWS AppSync

At AWS, cloud security is a top focus. As an AWS customer, you have access to data centers and network topologies designed to fulfill the needs of the most security-conscious businesses.

AWS and you both share responsibility for security. This is referred to as cloud security and cloud security under the shared responsibility model.

Cloud security  AWS is in charge of safeguarding the infrastructure that runs AWS services in the AWS Cloud. AWS also supplies you with services that are safe to utilize. As part of the AWS Compliance Programs, third-party auditors examine and certify the effectiveness of our security. See AWS Services in Scope by Compliance Program for further information on the compliance programs that apply to AWS AppSync.

Data Protection in AWS AppSync

In AWS AppSync, the shared responsibility paradigm applies to data protection. As seen in this architecture, AWS is in charge of safeguarding the global infrastructure that underpins the whole AWS Cloud. You are in charge of keeping your material hosted on this infrastructure under your control. The security configuration and management activities for the AWS services you use are covered in this material. See the Data Privacy FAQ for additional information about data privacy. See the AWS Shared Responsibility Model and GDPR blog post on the AWS Security Blog for more information on data protection in Europe.

Compliance Validation for AWS AppSync

As part of numerous AWS compliance initiatives, third-party auditors assess the security and compliance of AWS AppSync. SOC, PCI, HIPAA/HIPAA BAA, IRAP, C5, ENS High, OSPAR, and HITRUST CSF programs are all supported by AWS AppSync.Check AWS Services in Scope by Compliance Program to see if AWS AppSync or other AWS services are covered by certain compliance programs. AWS Compliance Programs provides general information.

Resolver mapping for AWS AppSync

You can answer GraphQL requests with AWS AppSync by performing actions on your resources. In order to communicate with a data source, a resolver must be attached to each GraphQL field on which you want to conduct a query or modification. The communication is usually done using parameters or actions specific to the data source.Connectors between GraphQl and a data source are known as resolvers. They advise AWS AppSync on how to convert an incoming GraphQL request into instructions for your backend data source, as well as how to convert the response from that data source back into a GraphQL response. They're written in Apache Velocity Template Language (VTL), which accepts your request and turns it into a JSON document with resolver instructions. You may use mapping templates for simple commands like passing in arguments from GraphQL fields or for more complex ones like looping over arguments to build an object before inserting it into DynamoDB.

Pricing for AWS AppSync

  • The cost of AWS AppSync is determined by the number of requests and changes. There is a charge for caching. See AWS AppSync pricing for further information.
  • The following is a list of AWS AppSync price exceptions:
  • The AWS Free Tier does not cover API caching in AWS AppSync.
  • Failures in permission and authentication are not charged to requests.
  • When API keys are absent or invalid, calls to methods that require them are not charged.

Frequently Asked Questions

What is the difference between AppSync and amplify?

AWS Amplify may utilize its simple GraphQL client to perform queries and real-time data subscriptions with any GraphQL source. AWS AppSync adds to GraphQL's capabilities by providing enterprise-level security, real-time data synchronization, and backend data resource orchestration.

Does AppSync use an API gateway?

Simply, AppSync is what API Gateway is to REST APIs in terms of GraphQL. I've been using AppSync often in recent months and have come to appreciate it. It not only makes it simple to create scalable GraphQL APIs, but it also simplifies tough operations in API Gateway.

Is App sync secure?

AppSync is a managed GraphQL solution that offers enterprise security capabilities for managing access to GraphQL endpoints.

What is AWS AppSync used for?

AWS AppSync is a new service that allows developers to manage and synchronize mobile app data between devices and users in real-time, while also allowing the data to be viewed and edited when the device is offline.

Does AppSync use an API gateway?

Simply configure your GraphQL resolvers, and you have a GraphQL API that can scale to millions of users and offers multi-AZ redundancy out-of-the-box. Simply put, AppSync is to GraphQL what API Gateway is to REST APIs.

Conclusion

In this article, we have extensively discussed AWS AppSync. We hope that this blog has helped you enhance your knowledge regarding AWS AppSync.

After reading about the AWS AppSync, are you not feeling excited to read/explore more articles on the topic of AWS? Don't worry; Coding Ninjas has you covered. To learn, see Introduction to AWSAWS FeaturesManaging Devices with AWS IoTAWS Amplify, and AWS Cost & Usage Report.

Refer to our Guided Path on Coding Ninjas Studio to upskill yourself in Data Structures and Algorithms, Competitive Programming, JavaScript, System Design, and many more! If you want to test your competency in coding, you may check out the mock test series and participate in the contests hosted on Coding Ninjas Studio! But if you have just started your learning process and are looking for questions asked by tech giants like Amazon, Microsoft, Uber, etc., you must look at the problems, interview experiences, and interview bundle for placement preparations. Nevertheless, you may consider our paid courses to give your career an edge over others! Do upvote our blogs if you find them helpful and engaging!

Happy Learning!

Live masterclass