Modernize your GraphQL APIs with MongoDB Atlas and AWS AppSync
>> Announcement: Some features mentioned below will be deprecated on Sep. 30, 2025.
Learn more
.
Modern applications typically need data from a variety of data sources, which are frequently backed by different databases and fronted by a multitude of REST APIs. Consolidating the data into a single coherent API presents a significant challenge for application developers.
GraphQL
emerged as a leading data query and manipulation language to simplify consolidating various APIs.
GraphQL
provides a complete and understandable description of the data in your API, giving clients the power to ask for exactly what they need — while making it easier to evolve APIs over time. It complements popular development stacks like
MEAN
and
MERN
, aggregating data from multiple origins into a single source that applications can then easily interact with.
MongoDB Atlas: A modern developer data platform
MongoDB Atlas
is a modern developer data platform with a fully managed cloud database at its core. It provides rich features like native time series collections, geospatial data, multi-level indexing, search, isolated workloads, and many more — all built on top of the flexible MongoDB document data model.
MongoDB Atlas App Services
help developers build apps, integrate services, and connect to their data by reducing operational overhead through features such as hosted Data API.
The Atlas Data API
allows developers to easily integrate Atlas data into their cloud apps and services over HTTPS with a flexible, REST-like API layer.
AWS AppSync: Serverless GraphQL and pub/sub APIs
AWS AppSync
is an AWS managed service that allows developers to build GraphQL and Pub/Sub APIs. With AWS AppSync, developers can create APIs that access data from one or many sources and enable real-time interactions in their applications. The resulting APIs are serverless, automatically scale to meet the throughput and latency requirements of the most demanding applications, and charge only for requests to the API and by real-time messages delivered.
Exposing your MongoDB Data over a scalable GraphQL API with AWS AppSync
Together, AWS AppSync and MongoDB Atlas help developers create GraphQL APIs by integrating multiple REST APIs and data sources on AWS. This gives frontend developers a single GraphQL API data source to drive their applications. Compared to REST APIs, developers get flexibility in defining the structure of the data while reducing the payload size by bringing only the attributes that are required.
Additionally, developers are able to take advantage of other AWS services such as Amazon Cognito, AWS Amplify, Amazon API Gateway, and AWS Lambda when building modern applications. This allows for a severless end-to-end architecture, which is backed by MongoDB Atlas serverless instances and available in pay-as-you-go mode from the
AWS Marketplace
.
Paths to integration
AWS AppSync uses data sources and resolvers to translate GraphQL requests and to retrieve data; for example, users can fetch MongoDB Atlas data using AppSync Direct Lambda Resolvers. Below, we explore two approaches to implementing Lambda Resolvers: using the
Atlas Data API
or connecting directly via
MongoDB drivers
.
Using the Atlas Data API in a Direct Lambda Resolver
With this approach, developers leverage the pre-created Atlas Data API when building a Direct Lambda Resolver. This ready-made API acts as a data source in the resolver, and supports popular authentication mechanisms based on API Keys, JWT, or email-password. This enables seamless integration with Amazon Cognito to manage customer identity and access.
The Atlas Data API lets you read and write data in Atlas using standard HTTPS requests and comes with managed networking and connections, replacing your typical app server. Any runtime capable of making HTTPS calls is compatible with the API.
Figure 1:
Architecture details of Direct Lambda Resolver with Data API
Figure 1 shows how AWS AppSync leverages the AWS Lambda Direct Resolver to connect to the MongoDB Atlas Data API. The Atlas Data API then interacts with your Atlas Cluster to retrieve and store the data.
MongoDB driver-based Direct Lambda Resolver
With this option, the Lambda Resolver connects to MongoDB Atlas directly via
drivers
, which are available in multiple programming languages and provide idiomatic access to MongoDB. MongoDB drivers support a rich set of
functionality and options
, including the MongoDB Query Language, write and read concerns, and more.
Figure 2:
Details the architecture of Direct Lambda Resolvers through native MongoDB drivers
Figure 2 shows how the AWS AppSync endpoint leverages Lambda Resolvers to connect to MongoDB Atlas. The Lambda function uses a MongoDB driver to make a direct connection to the Atlas cluster, and to retrieve and store data.
The table below summarizes the different resolver implementation approaches.
Table 1:
Feature comparison of resolver implementations
Setup
Atlas Cluster
Set up
a free cluster in MongoDB Atlas.
Configure the database for
network security
and access.
Set up
the Data API.
Secret Manager
Create
the AWS Secret Manager to securely store database credentials.
Lambda Function
Create Lambda functions with the MongoDB Data APIs or MongoDB drivers as shown in this
Github tutorial
.
AWS AppSync setup
Set up
AWS Appsync to configure the data source and query.
Test API
Test the AWS AppSync APIs using the AWS Console or
Postman
.
Figure 3:
Test results for the AWS AppSync query
Conclusion
To learn more, refer to the
AppSync Atlas Integration
GitHub repository for step-by-step instructions and sample code. This solution can be extended to
AWS Amplify
for building mobile applications. For further information, please contact
partners@mongodb.com
.
November 23, 2022