1.1.14 AWS AppSync

AWS AppSync — Managed GraphQL API

Tổng quan

AppSync là fully managed GraphQL service cho phép build real-time APIs kết nối nhiều data sources.

GraphQL vs REST

FeatureGraphQL (AppSync)REST (API Gateway)
Data fetchingClient chọn exact fieldsServer quyết định response
Over-fetching❌ Không✅ Thường xuyên
Under-fetching❌ Không✅ Cần multiple calls
Real-time✅ Subscriptions (WebSocket)WebSocket API riêng
Schema✅ Strongly typed❌ Tùy implementation
Caching✅ Server-side✅ Stage-level

Core Concepts

Client → AppSync API → Resolver → Data Source
                                    ├── DynamoDB
                                    ├── Lambda
                                    ├── RDS (Aurora Serverless)
                                    ├── OpenSearch
                                    ├── HTTP endpoint
                                    └── EventBridge
ConceptMô tả
SchemaGraphQL schema (types, queries, mutations, subscriptions)
ResolverMap GraphQL operation → data source
Data SourceBackend service (DynamoDB, Lambda, RDS, HTTP, etc.)
Pipeline ResolverChain multiple functions trong 1 resolver

Schema Example

type Order {
  id: ID!
  productName: String!
  quantity: Int!
  status: String!
}

type Query {
  getOrder(id: ID!): Order
  listOrders(status: String): [Order]
}

type Mutation {
  createOrder(productName: String!, quantity: Int!): Order
}

type Subscription {
  onCreateOrder: Order
    @aws_subscribe(mutations: ["createOrder"])
}

Real-time Subscriptions

  • WebSocket-based, tự động managed
  • Client subscribe → nhận updates khi mutation xảy ra
  • Use cases: chat apps, live dashboards, collaborative editing

Authorization Modes

ModeUse Case
API_KEYPublic APIs, development
AWS_IAMAWS service-to-service
AMAZON_COGNITO_USER_POOLSUser authentication
OPENID_CONNECTThird-party identity providers
AWS_LAMBDACustom authorization logic

Caching

  • Server-side caching (TTL configurable)
  • Per-resolver caching
  • Full request caching
  • Encryption at rest và in transit

Conflict Detection (Offline)

  • Versioned data sources
  • Auto merge strategies: Optimistic Concurrency, Automerge, Lambda
  • Amplify DataStore integration cho offline-first apps

Exam Tip: AppSync = GraphQL API. Cần real-time subscriptions = AppSync. Cần flexible data fetching (avoid over/under-fetching) = GraphQL/AppSync. REST API = API Gateway. AppSync hỗ trợ multiple data sources trong 1 API (DynamoDB + Lambda + RDS).