• Pricing
© 2026 Serverless, Inc. All rights reserved.

Framework

  • Overview
  • Documentation
  • Plugins360
  • Pricing

Learn

  • Blog
  • GuidesUpdated
  • Examples240
  • Courses

Resources

  • Support
  • Security
  • Trust Center
  • Status

Community

  • Slack
  • GitHub47k
  • Forum
  • Meetups

Company

  • About
  • Careers
  • Contact
  • Partners

Legal

  • Terms of Service
  • Privacy Policy
  • Trademark
  • DMCA
Updated March 2026

The Ultimate Guide to
AWS AppSync

AWS AppSync is a fully managed GraphQL API service that connects your schema to data sources like DynamoDB, Lambda, and RDS. It handles query resolution, real-time subscriptions, and offline sync without any servers to manage.

Build a GraphQL APIRead the Docs

AWS AppSync Key Features

AppSync replaces custom GraphQL server infrastructure with a managed service that handles schema parsing, resolver execution, and data source orchestration.

Core

Managed GraphQL Endpoint

Define your GraphQL schema and AppSync provides a fully managed endpoint. No Apollo Server, Express, or container infrastructure to run or scale.

Data

Multiple Data Sources

Connect resolvers directly to DynamoDB, RDS Aurora, OpenSearch, Lambda, or any HTTP endpoint. Aggregate data from multiple sources in a single query.

Real-time

Real-time Subscriptions

Built-in GraphQL subscriptions push data to connected clients over WebSockets. No custom pub/sub infrastructure needed for live updates.

Security

Flexible Authentication

Support for Cognito User Pools, IAM roles, OpenID Connect, and API keys. Multiple auth modes can be configured on the same API.

Mobile

Offline & Conflict Resolution

Combined with AWS Amplify, AppSync supports offline data access and automatic conflict resolution when clients reconnect, ideal for mobile apps.

Architecture

Pipeline Resolvers

Chain multiple resolver functions together in sequence. Execute authorization checks, data transformations, and data fetches in a single request pipeline.

How AppSync Works

AppSync sits between your clients and your data sources, translating GraphQL operations into data source requests and assembling the response.

1

Parse

A client sends a GraphQL query, mutation, or subscription. AppSync validates the operation against your schema and runs any configured authentication checks.

2

Resolve

AppSync executes the resolver mapped to each field. Resolvers connect to DynamoDB, Lambda, RDS, or HTTP endpoints to fetch or modify data. Pipeline resolvers chain multiple steps.

3

Return

AppSync assembles data from all resolvers into a single JSON response matching the shape requested by the client. For subscriptions, updates are pushed in real time.

Supported Data Sources

AppSync resolvers connect directly to these AWS services and external endpoints:

Amazon DynamoDB

The most common data source for AppSync. Map GraphQL types directly to DynamoDB tables with automatic CRUD resolver templates.

AWS Lambda

Run custom business logic for any resolver. Use Lambda when you need complex transformations or access to unsupported data stores.

Amazon RDS (Aurora)

Query relational databases using the Data API. Supports Aurora Serverless for SQL-based data access without managing connections.

Amazon OpenSearch

Full-text search and analytics queries mapped to GraphQL fields. Ideal for search, filtering, and aggregation use cases.

HTTP Endpoints

Call any REST API or third-party service as a data source. Useful for integrating with external systems and legacy services.

None (Local Resolver)

Resolve fields locally without calling an external data source. Useful for computed fields, static values, and pipeline orchestration.

Using AppSync with the Serverless Framework

The Serverless Framework supports AppSync through its plugin ecosystem. Define your GraphQL schema, data sources, and resolvers in serverless.yml alongside your Lambda functions:

serverless.yml
service: my-graphql-api

provider:
  name: aws
  runtime: nodejs22.x

plugins:
  - serverless-appsync-plugin

custom:
  appSync:
    name: MyGraphQLApi
    authentication:
      type: AMAZON_COGNITO_USER_POOLS
      config:
        userPoolId: !Ref CognitoUserPool
    dataSources:
      usersTable:
        type: AMAZON_DYNAMODB
        config:
          tableName: !Ref UsersTable
      postsResolver:
        type: AWS_LAMBDA
        config:
          functionName: getPosts
    resolvers:
      Query.getUser:
        dataSource: usersTable
      Query.listPosts:
        dataSource: postsResolver

functions:
  getPosts:
    handler: handler.getPosts

The serverless-appsync-plugin handles all CloudFormation resource creation: the AppSync API, schema upload, data source connections, resolver mappings, and IAM roles. Your GraphQL schema file lives alongside your code and deploys automatically.

Benefits of AppSync

Fully Managed GraphQL Layer

AppSync eliminates the need to run, scale, and maintain your own GraphQL server. No Apollo Server instances, no Express middleware, no container orchestration. Define your schema and resolvers, and AppSync handles parsing, validation, execution, and scaling automatically.

Real-time Subscriptions Built In

GraphQL subscriptions work out of the box over managed WebSocket connections. Clients receive automatic updates when data changes, without polling. Combined with Amplify client libraries, you get real-time data sync for web and mobile apps with minimal code.

Multi-source Data Aggregation

A single GraphQL query can resolve fields from DynamoDB, Lambda, RDS, and HTTP endpoints simultaneously. AppSync assembles the response from all data sources into one payload. This replaces the frontend pattern of making multiple REST calls and stitching results together.

Offline Support for Mobile Apps

Combined with the Amplify Framework, AppSync provides offline data access with automatic conflict resolution. Mobile apps continue working without connectivity and sync changes when they reconnect. This is particularly valuable for field service, delivery, and healthcare applications.

Trade-offs & Limitations

AppSync is the right choice for many GraphQL APIs, but these constraints are worth evaluating before committing.

GraphQL learning curve

GraphQL requires a paradigm shift from REST. Teams need to learn schema design, resolver patterns, and client-side query management. Specialized tooling like Amplify adds another layer of concepts.

Limited performance visibility

As a managed service, AppSync does not expose internal performance metrics or tuning parameters. You cannot adjust connection pooling, resolver timeouts at a granular level, or caching behavior within the resolver pipeline.

Not all data sources are native

AppSync natively supports DynamoDB, RDS Aurora, OpenSearch, and HTTP endpoints. For MongoDB, Redis, PostgreSQL (non-Aurora), or other data stores, you need a Lambda function as an intermediary.

Vendor lock-in

AppSync uses proprietary resolver mapping templates (VTL or JavaScript) and service-specific configuration. Migrating to Apollo Server, Hasura, or another GraphQL provider requires rewriting resolvers and infrastructure.

30-second query timeout

GraphQL queries must complete within 30 seconds. For complex aggregations or slow downstream services, you may need to break queries into smaller operations or use async patterns.

AppSync Pricing

AppSync pricing is based on query/mutation volume, real-time updates, connection minutes, and data transfer. There are no upfront costs.

Free Tier (First 12 Months)

250K

queries + mutations / month

250K

real-time updates / month

600K

connection minutes / month

ComponentPrice
Queries and mutations$4.00 / 1M requests
Real-time updates$2.00 / 1M updates
Connection minutes$0.08 / 1M minutes
Data transfer$0.09 / GB

Example: 10,000 users, 100 requests/day, 5 KB avg response

30M requests x $4.00/1M = $120.00/month

143 GB transfer x $0.09/GB = $12.87/month

Total AppSync charges: $132.87/month

Plus separate charges for DynamoDB, Lambda, and other backend services used by your resolvers.

See the official AppSync pricing page for current regional rates.

When to Use AppSync

Use AppSync when you are building a GraphQL API, need real-time subscriptions, want managed data source integrations with DynamoDB or RDS, or are building mobile apps that require offline sync and conflict resolution. AppSync is the fastest way to go from schema to production GraphQL endpoint on AWS.

Consider alternatives when you need fine-grained control over GraphQL server behavior (use Apollo Server or Hasura), want to avoid vendor lock-in with portable resolver code, or are building a simple REST API that does not benefit from the GraphQL query model (use HTTP APIs or API Gateway instead).

Learn More

Documentation

  • AWS AppSync Developer Guide
  • GraphQL Official Learning Guide
  • AWS Lambda Guide
  • Amazon DynamoDB Guide

Related Guides

  • Amazon API Gateway
  • AWS HTTP APIs
  • Amazon CloudFront (CDN)
  • Browse all guides

AppSync Limits

Key quotas to plan around. Most soft limits can be raised through AWS Support.

LimitValue
APIs per account per region25 (adjustable)
Schema size1 MB max
Query execution timeout30 seconds
Queries per second1,000 default (adjustable)
Subscriptions per connection100
API keys per API50
Resolvers per API10,000
Custom domains per account25
WebSocket connection timeout24 hours
Payload size1 MB response

AppSync Alternatives

AppSync is not the only way to build a GraphQL API. These alternatives may be a better fit depending on your requirements.

Apollo Server

Open-source GraphQL server you can self-host or run on Apollo Cloud. Best for multi-cloud deployments and teams that want maximum flexibility over resolver logic, caching, and federation.

Hasura

Open-source GraphQL engine that sits on top of PostgreSQL and auto-generates CRUD operations from your database schema. Best for rapid API development on relational data with minimal custom resolver code.

Prisma

ORM and data layer for Node.js and TypeScript. Not a direct AppSync replacement, but a popular choice for building GraphQL backends with type-safe database access and auto-generated queries.

AWS API Gateway + Lambda

Build a custom GraphQL endpoint by routing all requests through a single Lambda function running Apollo Server or another library. More control over the runtime, but more operational work.

AppSync FAQ

Common questions about AWS AppSync.

What is AWS AppSync?
AWS AppSync is a fully managed GraphQL API service from Amazon Web Services. It handles request parsing, query resolution, and connections to data sources like DynamoDB, Lambda, RDS, and HTTP endpoints, so you can build GraphQL APIs without managing servers.
What is the difference between AppSync and API Gateway?
API Gateway is designed for REST and HTTP APIs with traditional request/response patterns. AppSync is purpose-built for GraphQL, with native support for queries, mutations, subscriptions (real-time), and automatic resolver mapping to multiple data sources in a single request.
How much does AppSync cost?
Queries and mutations cost $4.00 per million requests. Real-time updates cost $2.00 per million. Connection minutes cost $0.08 per million. Data transfer is $0.09 per GB. The free tier includes 250,000 queries and 250,000 real-time updates per month for 12 months.
Does AppSync support real-time subscriptions?
Yes. AppSync has built-in GraphQL subscription support for real-time data updates over WebSocket connections. Clients automatically receive updates when data changes, without polling. This works with the Amplify client libraries for web and mobile.
What data sources does AppSync support?
AppSync natively integrates with Amazon DynamoDB, AWS Lambda, Amazon RDS (Aurora Serverless), Amazon OpenSearch (Elasticsearch), and any HTTP endpoint. For unsupported data stores, you can use a Lambda function as a bridge.
Can I use AppSync with the Serverless Framework?
Yes. The Serverless Framework supports AppSync through its plugin ecosystem. You can define your GraphQL schema, resolvers, data sources, and authentication in serverless.yml and deploy everything with a single command.
What are the main limits of AppSync?
Key limits include 25 GraphQL APIs per account (adjustable), 50 API keys per API (hard limit), 1 MB maximum schema size (hard limit), and a 30-second query execution timeout (hard limit). Most limits can be increased through AWS Support.

Build Your First GraphQL API

Deploy an AppSync GraphQL API with DynamoDB and Lambda in minutes using the Serverless Framework.

Get Started FreeView Documentation