GraphQL allows you to have a single endpoint which aggregates resolvers which address diverse back-ends. AppSync's implementation targets:
- DynamoDB tables
- Elasticsearch Domains
- Lambda Functions
- Relational databases
- HTTP endpoints
AppSync also supports GraphQL subscriptions which simplify the building of event driven systems.
The AWS Amplify toolkit contains tools for rapidly creating an AppSync API, but it makes a number of design compromises (such as storing each primary model type in a different DynamoDB table) that go a little against the grain.
Initially AppSync can look expensive at $4 per 1M requests; when compared to a V1 API Gateway endpoint at $3.50 per 1M requests, it starts to look more reasonable. The nature of a GraphQL API compared to a REST API means that you may eliminate a lot of round-trips and hence requests, making it more economical — especially if you can also eliminate calls to Lambda by creating resolvers that directly address your storage back-end.
This advantage is somewhat less obvious when using a V2 "HTTP" API Gateway at \$1.10 per 1M requests, but probably still favourable if you can decrease your call count. The reduced cost of development may also be a significant factor.